首页 > 解决方案 > Python3 Pandas 将列日期合并或合并为月份

问题描述

有一个数据集,其中包含每天和每位员工工作小时数的新列:

ID     1/1    1/2    1/3   1/4   ...   2/1   2/2   2/3  2/4 ... 3/1  3/2
A0001    0      0      0     8           8     8     8    8       5    8
A0002    0      0      0     0           8     4     4    4       4    4
A0003    0      0      8     8           8     8     8    8       8    8

问题是我有太多日期列,并希望使用 groupby 或 pivot 将它们合并或组合成几个月。列标题是字符串 '1/1', '1/2' 所以我不认为它们被识别为日期。

理想情况下希望 df 看起来像:

ID      1/2021    2/2021    3/2021   ...  
A0001        8        32        13
A0002        0        20         8
A0003       16        32        16 

我尝试制作一个数据透视表,但很惊讶其余的列根本没有聚合。然后我按位置逐列尝试了 groupby ,但它也不起作用:

df = df.pivot_table(df,index=['ID'], aggfunc='sum').reset_index()

df = df.groupby(['ID'],as_index=False)[df.columns[2:]].sum()

也尝试过转置,但日期没有合并。我应该尝试另一种方法吗?

标签: python-3.xgroup-bypivot-table

解决方案


推荐阅读