有一个数据集,其中有一个新列,用于表示每位员工的每一天和工作时间:
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
我尝试制作一个数据透视表,但很惊讶其余的列根本没有聚合。然后我按位置按每一列尝试分组,但它也不起作用:
df = df.pivot_table(df,index=['ID'], aggfunc='sum').reset_index()
df = df.groupby(['ID'],as_index=False)[df.columns[2:]].sum()
也试过换位,但日期没有合并。还有其他我应该尝试的方法吗?