1. 程式人生 > >Python資料分析Pandas庫之熊貓(10分鐘二)

Python資料分析Pandas庫之熊貓(10分鐘二)

pandas 10分鐘教程(二)

重點發法

  • 分組 groupby('列名') groupby(['列名1','列名2',.........])

  • 分組的步驟

  1. (Splitting) 按照一些規則將資料分為不同的組,拆分

  2. (Applying) 對於每組資料分別執行一個函式.'應用,申請'

  3. (Combining) 將結果組合到一個數據結構, '組合/合併'

import pandas as pd
#根據A分組後求和
df.groupby('A').sum()
#分組,指定具體列的出來函式   #reset_index 重置索引
df.group(by=['列1','列2',....]).agg({'列名':['max','min']}).reset_index()

#agg/apply:指定具體的處理函式,,,可以 寫自定義函式

 

分組後的統計方法

  1. size() = count()

  2. max(),min(),mean() 最大最小,平均數

  3. std()

  4. median() 中位數

  5. frist() ,last() 第一個和最後一個非NA值

  6. prod 非NA值得積

以上統計函式,除了count()外,都會自動過濾非數字列!!!!

 

  • 排重:duplicated

    1. 檢查重複的資料:df.duplicated()

    2. 檢查重複指定列名:df.duplicated(['列1','列2',....])

    3. 刪除重複資料:df.drop_duolicates()

    4. 刪除時指定保留的資料: df.drop_duplicates(['列1',.......],keep='frist/last')

      • keep:儲存

      • frist:第一個,last:最後一個

  • 資料透視表(和groupby()類似)

    1. df.pibot_table(df,index=['列1','列2',...],values='列名',aggfunc=np.mean/sum)

      • index : 需要排序的列

      • values : 需要統計的列

      • aggfunc : 執行的統計函式,不寫預設統計平均值

  • 分組替換: Categories 分組/分類,

    1. 實現第二列分組比替換資料:

      • df['新列名'] = df['B'].astype('category');轉化為分類/分組型別

      • 分配列名: df['新列名'].cat.set_categories((值1,值2,.......))

      • 重新設定: df['新列名'] = df['新列名'].cat_set_categories([值一,值二,...])

 

 

  • 讀寫檔案

    1. HDF5: 儲存打資料,方便和其他語言對接,

      • to_hdf()

      • read_hdf()

    2. 表格:excel

      • read_excel('path',sheet_name='子頁名')

      • to_excel(path)