温馨提示×

Pandas中groupby的用法是什么

小亿
102
2024-01-19 16:26:52
栏目: 编程语言

在Pandas中,groupby()用于对数据进行分组操作。通过groupby(),可以将数据按照指定的列或多个列进行分组,并对每个分组进行相应的操作,例如计算统计量、聚合、转换等。

groupby()的基本用法是:

df.groupby(by=None, axis=0, level=None, as_index=True, sort=True, group_keys=True, squeeze=False, observed=False, dropna=True)

参数说明:

  • by:指定按照哪些列进行分组,可以是单个列名、多个列名的列表、Series、字典、函数等。默认为None,表示按照整个DataFrame分组。
  • axis:指定分组的轴,0表示按行分组,1表示按列分组,默认为0。
  • level:如果DataFrame有多级索引,可以指定按照哪一级索引进行分组,默认为None。
  • as_index:指定分组的结果是否以分组列作为索引,默认为True。
  • sort:指定分组后的结果是否按照分组列进行排序,默认为True。
  • group_keys:指定是否在分组后的结果中显示分组键,默认为True。
  • squeeze:指定分组后是否对单个分组的结果进行挤压,默认为False。
  • observed:指定是否使用观察到的分组的所有取值进行分组,默认为False。
  • dropna:指定是否将含有缺失值的分组键排除,默认为True。

groupby()返回一个GroupBy对象,可以对该对象进行各种操作,如应用聚合函数(如sum、mean等)、筛选数据、转换数据等。

具体的操作可以通过GroupBy对象的方法来实现,例如:

  • agg(): 使用聚合函数对每个分组进行聚合操作。
  • apply(): 对每个分组应用自定义函数。
  • transform(): 对每个分组应用转换函数。
  • filter(): 根据条件筛选数据。

示例代码:

import pandas as pd

# 创建一个DataFrame
data = {'Name': ['Tom', 'Nick', 'John', 'Tom', 'Nick', 'John'],
        'Subject': ['Math', 'English', 'Math', 'English', 'Math', 'English'],
        'Score': [85, 90, 92, 78, 82, 88]}
df = pd.DataFrame(data)

# 按照Name列进行分组,并计算每个分组的平均分数
result = df.groupby('Name')['Score'].mean()
print(result)

输出结果:

Name
John    90.0
Nick    86.0
Tom     81.5
Name: Score, dtype: float64

该示例中,首先根据Name列进行分组,然后计算每个分组的平均分数。结果是一个Series,其中索引是分组的唯一值(Name列的取值),值是每个分组的平均分数。

0