python案列基礎方法與分析

2021-10-03 07:46:01 字數 4035 閱讀 1684

import pandas as pd

import numpy as np

import random

#設定最大列和最大行(資料就不會被省略)

pd.set_option(『max_columns』,1000)

pd.set_option(『max_row』,1000000000)

pd.set_option(『display.float_format』,lambda x:』%.5f』%x)

#將某列資料按數量值分成不同範圍段進行分組(groupby)運算

df = pd.dataframe()

#print(df)

#選出年齡在19-40 40-65 65-100的人 並統計個數 區間劃分(cut)

age_groups = pd.cut(df[『age』],bins=[19,40,45,100])

#print(age_groups)

#print(df.groupby(age_groups).count())

#按』age』分組範圍和性別(***)進行製作交叉表

#pd.crosstab(age_groups,df[『***』])

df1 = pd.dataframe()

print(df1)

#按key1分組,進行聚合計算

#注意:當分組進行數值計算時,不是數值類的列(即麻煩列)會被清除

print(df1.groupby(『key1』).sum())

#只算data1(兩種方法)

#print(df1[『data1』].groupby(df1[『key1』]).sum())

#print(df1.groupby(『key1』)[『data1』].sum())

#使用agg()函式做聚合運算

#print(df1.groupby(『key1』).agg(『sum』))

#可以同時做多個聚合運算

#print(df1.groupby(『key1』).agg([『sum』,『mean』,『std』]))

#可自定義函式,傳入agg方法中,groupby.agg(func)

def peak_range(df):

『』』返回數值範圍

『』』return df.max()-df.min()

#print(df1.groupby(『key1』).agg(peak_range))

#同時運用多個聚合函式

#print(df1.groupby(『key1』).agg([『mean』,『sum』,『count』,peak_range])) #預設列明為函式名

#print(df1.groupby(『key1』).agg([『mean』,『sum』,『count』,(『range』,peak_range)])) #通過元祖改名

#好萊塢電影分析

import pandas as pd

import numpy as np

data = pd.read_csv(『e:haolaiwu.csv』)

#print(data)

#data.count()

#data.head()

#處理缺失值

data = data.dropna(how=『any』)

#data.count()

data.head()

#roup_director = data.groupby(by=『director_name』)[『gross』].sum() #每個導演的票房總數

#print(group_director)

#accending公升降序排列,true公升序

#esult = group_director.sort_values()

#result.head()

#print(ult.loc[『frank whaley』]) #loc索引檢視行

#電影產量年份趨勢

#import matplotlib.pyplot as plt

#movie_years = data.groupby(『title_year』)[『movie_title』]

#print(movie_years.count().index.tolist()) #轉成列表

#print(movie_years.count().values)

#x = movie_years.count().index.tolist()

#y = movie_years.count().values

#plt.figure(figsize=(20,8),dpi=80)

#plt.plot(x,y)

#plt.show()

#把genres列的豎線取消掉 轉成有價值得數

#4建立乙個新的dataframe儲存拆分好的資料

genre_data = pd.dataframe(columns = [『genres』,『gross』])

#1獲取每一行資料

for i in range(0,len(data)):

#2每一行資料

row_data = data.iloc[i]

#3將型別拆分

genres = row_data[『genres』].split(』|』)

#5#型別個數

n_genres = len(genres)

#6將拆分好的資料打包成字典,然後存到新的dataframe裡面去

dict_obj = {}

dict_obj['genres']=genres

dict_obj['gross']=[row_data['gross']]*n_genres

#7將字典轉成dataframe

genre_df = pd.dataframe(dict_obj)

#8這是將一條資料拆分後的形成的dataframe新增到genre_data

#print(genre_data)

genre_count = genre_data.groupby(『genres』).count()

print(genre_count.columns)

#匯入#讀

people = pd.read_excel(「e:abc.xlsx」)

print(people.columns)

#pandas讀取,寫入excel

df=pd.dataframe()

df = df.set_index(『id』)

df.to_excel(』-----.xlsx』)

print(df)

#注意點

#預設將第一行作為索引列

#people = pd.=read_excel(』--------.xlsx』,header=1)

#print(people.columns)

#可以將header=none,此時,列索引變成原來預設的數字索引,就可以進行自定義的列索引設定

#people=pd.read_excel(-----.xlsx,header=none)

#print(people.columns)

#多個表的時候制定表的名字』

sheet = pd.read_excel(』----.xlsx』,sheet_name=『sheet2』)

print(sheet)

#skipows : 跳過前幾行

#usecols:使用那幾列

sheet = pd.read_excel(』------.xlsx』,skiprows=3,usecols=『c』:『f』)

print(sheet)

#獲取資料庫中的資料

import pymysql

#建立乙個資料庫連線

conn = pymysql.connect(host=『localhost』,user=『root』,passwd=『123』,db=『telephone』,port=3306,charset=『utf8』)

query = 『select id,num from num_table』

#方法裡面需要填寫sql語句

df = pd.read_sql_query(query,conn)

print(df)

氣泡排序與查重 案列分析

現有乙個長度為10的陣列,陣列中的每個元素為0 1000的隨機數字,現請將此陣列按公升序排列並列印在頁面上,且不能有重複數字。題目分析 檢視題目,我們發現題目有如下幾個個要求 但是還有乙個隱藏要求。因為進行去重操作後,陣列的長度有可能會減少。由於題目要求輸出長度為10的陣列。所以我們要在最後進行最後...

python類方法的綜合應用案列

以下是我對類的一些思考,希望可以幫助大家啊 為類calendar新增兩個方法 乙個刪除完成項,乙個新增新增項 a code block 題目要就 刪除 給父母買禮物鍵值對,並新增 寫日記 20 00 class calendar def init self self.date 2020 08 08 ...

資料分析與挖掘案列 拉勾網資料分析崗位分析

無論出於興趣或者職業發展,於是最近開始做各種大小專案實踐,以拉勾網資料分析招聘職位分析廣州求職競爭情況!tools chrome python 3.6 jupyter os mac osx 在拉勾網搜尋頁面輸入資料分析,並且定位為廣州,用f12開啟開發除錯工具,根據下圖示紅的地方檢視詳細資訊 在ge...