pandas
分组
看过来
《pandas 教程》 持续更新中,可作为 pandas 入门进阶课程、pandas 中文手册、用法大全,配有案例讲解和速查手册。提供建议、纠错、催更等加作者微信: gairuo123(备注:pandas教程)和关注公众号「盖若」ID: gairuo。查看更新日志。作者开办 Python 数据分析训练营正在报名中,详情 Python 数据分析训练营。
![]() |
本教程作者所著新书《Python之光:Python编程入门与实战》(ISBN:9787111729891)已由机械工业出版社出版上市,各大电商平台有售,欢迎:查看详情并关注购买。 |
![]() |
本教程作者所著新书《深入浅出Pandas:利用Python进行数据处理与分析》(ISBN:9787111685456)已由机械工业出版社出版上市,各大电商平台有售,欢迎:查看详情并关注购买。 |
pandas.Grouper 是专门用来生成分组依据的工具,可以按列、按索引、按计算结果、时序中的频率等内容为依据进行分组。
pandas.Grouper(key=None, level=None, freq=None, axis=0, sort=False)
如:
# df.groupby('team')
df.groupby(pd.Grouper('team')).sum()
# 如果是时间,可以60秒一分组
df.groupby(Grouper(key='date', freq='60s'))
# 轴方向
df.groupby(Grouper(level='date', freq='60s', axis=1))
# 按索引
df.groupby(pd.Grouper(level=1)).sum()
单个列:
df.groupby(pd.Grouper('team'))
多个列:
df.groupby([pd.Grouper(freq='1M', key='Date'), 'Buyer']).sum()
df.groupby([pd.Grouper('dt', freq='D'),
pd.Grouper('other_column')
])
df.groupby([pd.Grouper(level='second'), 'A']).sum()
df.groupby([pd.Grouper(level=1), 'A']).sum()
todo
按时间周期分组,需要使用时间字段,如果不是日期时间类型需要进行类型转换:
df['column_name'] = pd.to_datetime(df['column_name'])
df.groupby(pd.Grouper(key='column_name', freq="M")).mean()
可以自定义时间周期:
# 10 年一个周期
df.groupby(pd.cut(df.date,
pd.date_range('1970', '2020', freq='10YS'),
right=False)
).mean()
无「盖若」授权,请勿以任何形式转载,公众号:gairuo
Copyright © 2019 - 2023
Gairuo.com All Rights Reserved v7.6.1.0919
京公网安备11010502033395号
京ICP备15019454号-4