python - Pandas 按年和月汇总并汇总其他列
问题描述
具有以下代码:
import pandas as pd
data = {
'x': ['2019-07-29', '2019-07-30', '2019-07-31', '2019-08-01', '2019-08-02', '2019-08-03'],
'y': [4, 6, 4, 4, 6, 7]
}
df = pd.DataFrame(data = data, columns = ['x', 'y'])
df
这将输出:
x y
0 2019-07-29 4
1 2019-07-30 6
2 2019-07-31 4
3 2019-08-01 4
4 2019-08-02 6
5 2019-08-03 7
是否可以按年和月对 x 列中的日期进行分组,并将 x 中的金额相加并将结果放入新的数据框中?像这样:
x y
0 2019-07 13
1 2019-08 17
解决方案
用于pd.to_datetime
转换x
为 pandas 日期时间。然后groupby
在Series.dt.year
和Series.dt.month
:
In [181]: df.x = pd.to_datetime(df.x)
In [194]: df = df.groupby([df.x.dt.year, df.x.dt.month]).agg(sum).rename_axis(['year', 'month']).reset_index().rename(columns={'y':'sum'})
In [195]: df
Out[195]:
year month sum
0 2019 7 14
1 2019 8 17
推荐阅读
- c++ - 如何理解使用 typedef 定义函数指针?
- java - 如何转换从另一个类生成的列表
- mysql - GCP 上的 MySQL 扩展
- unix - 比较两个文件中的列,如果匹配更改另一列中的字符串
- javascript - 用div包围内容时如何修复Highcharts中轴标签的格式?
- php - Laravel - 将时间转换为模型中的用户时区
- mongodb - 删除/删除查询以删除 MongoDB 中的重复记录
- javascript - 在 NgRX createEffect 调用中模拟 catchError
- html - 在脚本函数之后使用附加参数重定向
- python - 在 python 循环中保存预测图像每次迭代都会变慢