Python資料分析Pandas庫之熊貓(10分鐘二)
pandas 10分鐘教程(二)
重點發法
-
分組 groupby('列名') groupby(['列名1','列名2',.........])
-
分組的步驟
-
(Splitting) 按照一些規則將資料分為不同的組,拆分
-
(Applying) 對於每組資料分別執行一個函式.'應用,申請'
-
(Combining) 將結果組合到一個數據結構, '組合/合併'
import pandas as pd
#根據A分組後求和
df.groupby('A').sum()
#分組,指定具體列的出來函式 #reset_index 重置索引
df.group(by=['列1','列2',....]).agg({'列名':['max','min']}).reset_index()
#agg/apply:指定具體的處理函式,,,可以 寫自定義函式
分組後的統計方法
-
size() = count()
-
max(),min(),mean() 最大最小,平均數
-
std()
-
median() 中位數
-
frist() ,last() 第一個和最後一個非NA值
-
prod 非NA值得積
以上統計函式,除了count()外,都會自動過濾非數字列!!!!
-
排重:duplicated
-
檢查重複的資料:df.duplicated()
-
檢查重複指定列名:df.duplicated(['列1','列2',....])
-
刪除重複資料:df.drop_duolicates()
-
刪除時指定保留的資料: df.drop_duplicates(['列1',.......],keep='frist/last')
-
keep:儲存
-
frist:第一個,last:最後一個
-
-
-
資料透視表(和groupby()類似)
-
df.pibot_table(df,index=['列1','列2',...],values='列名',aggfunc=np.mean/sum)
-
index : 需要排序的列
-
values : 需要統計的列
-
aggfunc : 執行的統計函式,不寫預設統計平均值
-
-
-
分組替換: Categories 分組/分類,
-
實現第二列分組比替換資料:
-
df['新列名'] = df['B'].astype('category');轉化為分類/分組型別
-
分配列名: df['新列名'].cat.set_categories((值1,值2,.......))
-
重新設定: df['新列名'] = df['新列名'].cat_set_categories([值一,值二,...])
-
-
-
讀寫檔案
-
HDF5: 儲存打資料,方便和其他語言對接,
-
to_hdf()
-
read_hdf()
-
-
表格:excel
-
read_excel('path',sheet_name='子頁名')
-
to_excel(path)
-
-