Pandas中的groupby函數(shù)用于對DataFrame中的數(shù)據(jù)進行分組。它可以根據(jù)某一列或多列的值將數(shù)據(jù)分成不同的組,并對每個組進行聚合操作。
以下是groupby函數(shù)的一般用法:
df.groupby(by=None, axis=0, level=None, as_index=True, sort=True, group_keys=True, squeeze=False, observed=False, **kwargs)
參數(shù)說明:
by
: 指定分組的列名或列名的列表??梢允菃蝹€列名的字符串,也可以是多個列名組成的列表。axis
: 指定分組的軸,默認為0,表示按行分組。如果設置為1,則表示按列分組。level
: 如果DataFrame具有多層索引,則可以指定要分組的索引級別。as_index
: 是否以分組的列作為索引,默認為True。sort
: 分組后的結果是否根據(jù)分組鍵進行排序,默認為True。group_keys
: 是否在最后的結果中包含分組鍵,默認為True。squeeze
: 如果分組后的結果只有一列,是否將結果返回為Series,默認為False。observed
: 是否觀察到所有的分組鍵,默認為False。groupby函數(shù)返回一個GroupBy對象,可以對該對象進行聚合操作,如求和、平均值等。
以下是一些常用的groupby操作示例:
# 按某一列進行分組,并計算每組的平均值
df.groupby('column_name').mean()
# 按多個列進行分組,并計算每組的和
df.groupby(['column_name1', 'column_name2']).sum()
# 對分組后的結果進行聚合操作
df.groupby('column_name').agg({'column_name1': 'sum', 'column_name2': 'mean'})
# 對分組后的結果進行迭代
for group_name, group_data in df.groupby('column_name'):
# 操作每個分組的數(shù)據(jù)
# 對分組后的結果應用自定義的函數(shù)
df.groupby('column_name').apply(custom_function)
以上是groupby函數(shù)的基本用法,更詳細的使用方法可以參考Pandas官方文檔。