首页 > 解决方案 > 快速创建汇总数据框

问题描述

我有一个数据框,我想将其总结为一个新的数据框:原始数据框有一个人、一个日期和三个虚拟类别——足球、网球和排球,表明一个人在该日期参加了该运动(灰色表格)

我想制作一个“摘要 df”,显示该人每季度参加每项运动的次数(蓝色表格)。当数据框由 100 多个不同的人和几十万个日期组成时,有什么方法可以真正有效地做到这一点?我有点不知所措,感谢任何答案!

在此处输入图像描述

标签: pythonpandasdataframe

解决方案


一个想法是先将日期时间转换为季度和年份,Series.dt.quarter然后Series.dt.year再聚合sum

dates = pd.to_datetime(df['Date'], format='%d.%m.%Y')
df1 = (df.groupby(['Person', 
                   dates.dt.quarter.rename('Quarter'), 
                   dates.dt.year.rename('Year')], sort=False)
         .sum()
         .reset_index())

推荐阅读