Pandas中groupby的用法是什么

avatar
作者
猴君
阅读量:1

在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列的取值),值是每个分组的平均分数。

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!