用法:
DataFrame.pivot_table(values=None, index=None, columns=None, aggfunc='mean', fill_value=None, margins=False, dropna=True, margins_name='All', observed=False, sort=True)
創建一個 spreadsheet-style 數據透視表作為 DataFrame。
數據透視表中的級別將存儲在結果 DataFrame 的索引和列上的 MultiIndex 對象(分層索引)中。
- values:要聚合的列,可選
- index:列、Grouper、數組或前一個列表
如果傳遞一個數組,它必須與數據的長度相同。該列表可以包含任何其他類型(列表除外)。在數據透視表索引上分組的鍵。如果傳遞了一個數組,則它的使用方式與列值相同。
- columns:列、Grouper、數組或前一個列表
如果傳遞一個數組,它必須與數據的長度相同。該列表可以包含任何其他類型(列表除外)。在數據透視表列上分組的鍵。如果傳遞了一個數組,則它的使用方式與列值相同。
- aggfunc:函數,函數列表,dict,默認 numpy.mean
如果傳遞函數列表,則生成的數據透視表將具有分層列,其頂層是函數名稱(從函數對象本身推斷)如果傳遞 dict,則鍵是要聚合的列,值是函數或函數列表。
- fill_value:標量,默認無
用於替換缺失值的值(在結果數據透視表中,聚合後)。
- margins:布爾值,默認為 False
添加所有行/列(例如小計/總計)。
- dropna:布爾值,默認為真
不要包括其條目全部為 NaN 的列。
- margins_name:str,默認“全部”
當邊距為 True 時將包含總計的行/列的名稱。
- observed:布爾值,默認為 False
這僅適用於任何 groupers 是分類的。如果為真:僅顯示分類分組的觀察值。如果為 False:顯示分類分組的所有值。
- sort:布爾值,默認為真
指定是否應該對結果進行排序。
- DataFrame
Excel 風格的數據透視表。
參數:
返回:
注意:
有關更多示例,請參閱用戶指南。
例子:
>>> df = pd.DataFrame({"A":["foo", "foo", "foo", "foo", "foo", ... "bar", "bar", "bar", "bar"], ... "B":["one", "one", "one", "two", "two", ... "one", "one", "two", "two"], ... "C":["small", "large", "large", "small", ... "small", "large", "small", "small", ... "large"], ... "D":[1, 2, 2, 3, 3, 4, 5, 6, 7], ... "E":[2, 4, 5, 5, 6, 6, 8, 9, 9]}) >>> df A B C D E 0 foo one small 1 2 1 foo one large 2 4 2 foo one large 2 5 3 foo two small 3 5 4 foo two small 3 6 5 bar one large 4 6 6 bar one small 5 8 7 bar two small 6 9 8 bar two large 7 9
第一個示例通過求和來聚合值。
>>> table = pd.pivot_table(df, values='D', index=['A', 'B'], ... columns=['C'], aggfunc=np.sum) >>> table C large small A B bar one 4.0 5.0 two 7.0 6.0 foo one 4.0 1.0 two NaN 6.0
我們還可以使用
fill_value
參數填充缺失值。>>> table = pd.pivot_table(df, values='D', index=['A', 'B'], ... columns=['C'], aggfunc=np.sum, fill_value=0) >>> table C large small A B bar one 4 5 two 7 6 foo one 4 1 two 0 6
下一個示例通過取多列的平均值進行聚合。
>>> table = pd.pivot_table(df, values=['D', 'E'], index=['A', 'C'], ... aggfunc={'D':np.mean, ... 'E':np.mean}) >>> table D E A C bar large 5.500000 7.500000 small 5.500000 8.500000 foo large 2.000000 4.500000 small 2.333333 4.333333
我們還可以為任何給定的值列計算多種類型的聚合。
>>> table = pd.pivot_table(df, values=['D', 'E'], index=['A', 'C'], ... aggfunc={'D':np.mean, ... 'E':[min, max, np.mean]}) >>> table D E mean max mean min A C bar large 5.500000 9 7.500000 6 small 5.500000 9 8.500000 8 foo large 2.000000 5 4.500000 4 small 2.333333 6 4.333333 2
相關用法
- Python pandas.DataFrame.pivot用法及代碼示例
- Python pandas.DataFrame.pipe用法及代碼示例
- Python pandas.DataFrame.product用法及代碼示例
- Python pandas.DataFrame.plot.hexbin用法及代碼示例
- Python pandas.DataFrame.plot.barh用法及代碼示例
- Python pandas.DataFrame.prod用法及代碼示例
- Python pandas.DataFrame.plot.kde用法及代碼示例
- Python pandas.DataFrame.plot.box用法及代碼示例
- Python pandas.DataFrame.plot.area用法及代碼示例
- Python pandas.DataFrame.plot.scatter用法及代碼示例
- Python pandas.DataFrame.plot.bar用法及代碼示例
- Python pandas.DataFrame.pop用法及代碼示例
- Python pandas.DataFrame.pow用法及代碼示例
- Python pandas.DataFrame.plot.hist用法及代碼示例
- Python pandas.DataFrame.pct_change用法及代碼示例
- Python pandas.DataFrame.plot.pie用法及代碼示例
- Python pandas.DataFrame.plot.density用法及代碼示例
- Python pandas.DataFrame.plot.line用法及代碼示例
- Python pandas.DataFrame.ewm用法及代碼示例
- Python pandas.DataFrame.dot用法及代碼示例
注:本文由純淨天空篩選整理自pandas.pydata.org大神的英文原創作品 pandas.DataFrame.pivot_table。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。