groupby函数作用
在pandas中,groupby函数用于对DataFrame对象进行分组操作。它将数据按照指定的列或多个列进行分组,并返回一个GroupBy对象,可以对分组后的数据进行聚合、转换和筛选等操作。
groupby函数的常见用法如下:
DataFrame.groupby(by=None, axis=0, level=None, as_index=True, sort=True, group_keys=True, squeeze=False, observed=False, **kwargs)
参数说明:
- by:指定用于分组的列名、列名的列表、字典或Series对象。如果是列名或列名的列表,表示按照指定的列进行分组;如果是字典或Series对象,表示按照字典或Series对象的值进行分组。
- axis:指定按照列(axis=0)还是按照行(axis=1)进行分组。默认值为0,表示按照列进行分组。
- level:指定按照多级索引的哪一级进行分组。
- as_index:指定是否将分组的列作为索引,默认为True。
- sort:指定是否按照分组键对结果进行排序,默认为True。
- group_keys:指定是否在结果中包含分组键,默认为True。
- squeeze:指定当分组只有一个组时,是否返回一个Series对象,默认为False。
- observed:指定在进行分组操作时是否考虑观察到的所有值,默认为False。
示例:
import pandas as pd
data = {'name': ['John', 'Mary', 'Peter', 'John'],
'city': ['London', 'Paris', 'London', 'Berlin'],
'age': [25, 30, 35, 40]}
df = pd.DataFrame(data)
# 按照name列进行分组,并计算每个分组的平均年龄
grouped = df.groupby('name')
mean_age = grouped['age'].mean()
print(mean_age)
# 按照多个列进行分组,并计算每个分组的人数
grouped = df.groupby(['name', 'city'])
count = grouped.size()
print(count)
输出:
name
John 32.5
Mary 30.0
Peter 35.0
Name: age, dtype: float64
name city
John Berlin 40
London 25
Mary Paris 30
Peter London 35
dtype: int64
在上述示例中,首先使用groupby函数按照name列进行分组,并计算每个分组的平均年龄。然后,使用groupby函数按照name和city两列进行分组,并计算每个分组的人数。最后,打印了计算结果。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 记一次.NET内存居高不下排查解决与启示