用法:
DataFrame.groupby(by=None, axis=0, level=None, as_index=True, sort=True, group_keys=True, squeeze=NoDefault.no_default, observed=False, dropna=True)
使用映射器或按一係列列對 DataFrame 進行分組。
groupby 操作涉及拆分對象、應用函數和組合結果的某種組合。這可用於對大量數據進行分組並在這些組上進行計算操作。
- by:映射、函數、標簽或標簽列表
用於確定 groupby 的組。如果
by
是一個函數,它會在對象索引的每個值上調用。如果傳遞了 dict 或 Series,則 Series 或 dict VALUES 將用於確定組(Series 的值首先對齊;參見.align()
方法)。如果傳遞了長度等於所選軸的列表或 ndarray(請參閱 groupby 用戶指南),則使用這些值 as-is 來確定組。標簽或標簽列表可以通過self
中的列傳遞給分組。請注意,元組被解釋為(單個)鍵。- axis:{0 或 ‘index’,1 或 ‘columns’},默認 0
沿行 (0) 或列 (1) 拆分。
- level:int,級別名稱或此類的序列,默認無
如果軸是 MultiIndex(分層),則按特定級別或多個級別分組。
- as_index:布爾值,默認為真
對於聚合輸出,返回以組標簽為索引的對象。僅與 DataFrame 輸入相關。 as_index=False 實際上是 “SQL-style” 分組輸出。
- sort:布爾值,默認為真
對組鍵進行排序。關閉此函數可獲得更好的性能。請注意,這不會影響每組內的觀察順序。 Groupby 保留每個組內的行順序。
- group_keys:布爾值,默認為真
調用 apply 時,將組鍵添加到索引以識別片段。
- squeeze:布爾值,默認為 False
如果可能,減少返回類型的維數,否則返回一致的類型。
- observed:布爾值,默認為 False
這僅適用於任何 groupers 是分類的。如果為真:僅顯示分類分組的觀察值。如果為 False:顯示分類分組的所有值。
- dropna:布爾值,默認為真
如果為 True,並且組鍵包含 NA 值,則 NA 值連同行/列將被刪除。如果為 False,NA 值也將被視為組中的鍵。
- DataFrameGroupBy
返回包含有關組的信息的 groupby 對象。
參數:
返回:
注意:
有關更詳細的用法和示例,請參閱用戶指南,包括將對象分成組、遍曆組、選擇組、聚合等。
例子:
>>> df = pd.DataFrame({'Animal':['Falcon', 'Falcon', ... 'Parrot', 'Parrot'], ... 'Max Speed':[380., 370., 24., 26.]}) >>> df Animal Max Speed 0 Falcon 380.0 1 Falcon 370.0 2 Parrot 24.0 3 Parrot 26.0 >>> df.groupby(['Animal']).mean() Max Speed Animal Falcon 375.0 Parrot 25.0
層次索引
我們可以使用
level
參數對分層索引的不同級別進行分組:>>> arrays = [['Falcon', 'Falcon', 'Parrot', 'Parrot'], ... ['Captive', 'Wild', 'Captive', 'Wild']] >>> index = pd.MultiIndex.from_arrays(arrays, names=('Animal', 'Type')) >>> df = pd.DataFrame({'Max Speed':[390., 350., 30., 20.]}, ... index=index) >>> df Max Speed Animal Type Falcon Captive 390.0 Wild 350.0 Parrot Captive 30.0 Wild 20.0 >>> df.groupby(level=0).mean() Max Speed Animal Falcon 370.0 Parrot 25.0 >>> df.groupby(level="Type").mean() Max Speed Type Captive 210.0 Wild 185.0
我們也可以通過設置
dropna
參數來選擇是否在組鍵中包含NA,默認設置為True
。>>> l = [[1, 2, 3], [1, None, 4], [2, 1, 3], [1, 2, 2]] >>> df = pd.DataFrame(l, columns=["a", "b", "c"])
>>> df.groupby(by=["b"]).sum() a c b 1.0 2 3 2.0 2 5
>>> df.groupby(by=["b"], dropna=False).sum() a c b 1.0 2 3 2.0 2 5 NaN 1 4
>>> l = [["a", 12, 12], [None, 12.3, 33.], ["b", 12.3, 123], ["a", 1, 1]] >>> df = pd.DataFrame(l, columns=["a", "b", "c"])
>>> df.groupby(by="a").sum() b c a a 13.0 13.0 b 12.3 123.0
>>> df.groupby(by="a", dropna=False).sum() b c a a 13.0 13.0 b 12.3 123.0 NaN 12.3 33.0
相關用法
- Python pandas.DataFrame.ge用法及代碼示例
- Python pandas.DataFrame.gt用法及代碼示例
- Python pandas.DataFrame.get用法及代碼示例
- Python pandas.DataFrame.ewm用法及代碼示例
- Python pandas.DataFrame.dot用法及代碼示例
- Python pandas.DataFrame.apply用法及代碼示例
- Python pandas.DataFrame.combine_first用法及代碼示例
- Python pandas.DataFrame.cumsum用法及代碼示例
- Python pandas.DataFrame.rename用法及代碼示例
- Python pandas.DataFrame.to_numpy用法及代碼示例
- Python pandas.DataFrame.dtypes用法及代碼示例
- Python pandas.DataFrame.cummin用法及代碼示例
- Python pandas.DataFrame.truncate用法及代碼示例
- Python pandas.DataFrame.sparse.from_spmatrix用法及代碼示例
- Python pandas.DataFrame.add_prefix用法及代碼示例
- Python pandas.DataFrame.to_json用法及代碼示例
- Python pandas.DataFrame.convert_dtypes用法及代碼示例
- Python pandas.DataFrame.assign用法及代碼示例
- Python pandas.DataFrame.radd用法及代碼示例
- Python pandas.DataFrame.add用法及代碼示例
注:本文由純淨天空篩選整理自pandas.pydata.org大神的英文原創作品 pandas.DataFrame.groupby。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。