python 用pandas實現數據透視表功能
透視表是一種可以對數據動態排布并且分類匯總的表格格式。對于熟練使用 excel 的伙伴來說,一定很是親切!
pd.pivot_table() 語法:
pivot_table(data, # DataFrame values=None, # 值 index=None, # 分類匯總依據 columns=None, # 列 aggfunc=’mean’, # 聚合函數 fill_value=None, # 對缺失值的填充 margins=False, # 是否啟用總計行/列 dropna=True, # 刪除缺失 margins_name=’All’ # 總計行/列的名稱 )1、銷量數據的透視
import osimport numpy as npimport pandas as pdfile_name = os.path.join(path, ’Excel_test.xls’)df = pd.read_excel(io=file_name, # 工作簿路徑 sheetname=’透視表’, # 工作表名稱 skiprows=1, # 要忽略的行數 parse_cols=’A:D’ # 讀入的列 )df
# 透視數據df_p = df.pivot_table(index=’客戶名稱’, # 透視的行,分組依據 values=’銷量’, # 值 aggfunc=’sum’ # 聚合函數 )# 對透視表進行降序排列df_p = df_p.sort_values(by=’銷量’, # 排序依據 ascending=False # 是否升序排列 )# 設置數值格式df_p = df_p.round({’銷量’: 0}).astype(’int’)# 添加列ks = df_p[’銷量’]//100df_p[’重要程度’] = [’★’*k for k in ks]df_p
df_p[’客戶名稱’] = df_p.indexdf_p.set_index(keys=[’重要程度’, ’客戶名稱’])
注:以上操作從理論和實踐方面看都沒什么問題,但模仿 excel 的痕跡濃重了些,更 python 的操作是用 groupby-applay 的方法。
2 用 分組聚合 實現數據透視grouped = df.groupby(by=’客戶名稱’)grouped[’銷量’].agg(’sum’)
# 分類匯總df_p = df.groupby(by=’客戶名稱’ # 分類 ).agg(’sum’ # 匯總 ).sort_values(by=’銷量’, ascending=False # 排序 ).round({’銷量’: 0} # 設置精度 ).astype(’int’) # 數據類型轉換# 添加列ks = df_p[’銷量’]//100df_p[’重要程度’] = [’★’*k for k in ks]df_p[’客戶名稱’] = df_p.index# 層次索引df_p.set_index(keys=[’重要程度’, ’客戶名稱’])
軟件信息:
以上就是python 用pandas實現數據透視表功能的詳細內容,更多關于python pandas實現數據透視表的資料請關注好吧啦網其它相關文章!
相關文章: