python - 快速创建汇总数据框
问题描述
我有一个数据框,我想将其总结为一个新的数据框:原始数据框有一个人、一个日期和三个虚拟类别——足球、网球和排球,表明一个人在该日期参加了该运动(灰色表格)
我想制作一个“摘要 df”,显示该人每季度参加每项运动的次数(蓝色表格)。当数据框由 100 多个不同的人和几十万个日期组成时,有什么方法可以真正有效地做到这一点?我有点不知所措,感谢任何答案!
解决方案
一个想法是先将日期时间转换为季度和年份,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())
推荐阅读
- python - 如何使用 html 清理数据框?
- python-3.x - Django REST框架HyperlinkedIdentityField格式kwarg不起作用
- laravel - 通过 API 网关从微服务获取文件位置
- xamarin.forms - Xamarin Android 链接 SDK 程序集停止 FirebaseMessagingService onNewToken
- mouseevent - MPV播放器获取视频时间和鼠标坐标
- dns - 我不知道如何将 ejs 连接到 DOMAIN 但不知道 localhost
- java - CursorLoader 安卓
- python - 你如何编写一个程序,输出一个给定高度的数字三角形,但只使用while循环(列表,范围,for循环是不允许的)
- git - 如何拉取 Github 分支项目来替换我更改的本地文件?
- laravel-5 - Laravel 5.6 将数据从 FirstController 发送到 SecondControler 存储