python-3.x - 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()
也尝试过转置,但日期没有合并。我应该尝试另一种方法吗?
解决方案
推荐阅读
- android - NativeScript Web 视图的摄像头和麦克风权限
- regex - 从 std::regex_search 获取迭代器并在 string::replace 中使用它们
- c++ - 何时将 std::future 和 std::promise 与 std::thread 一起使用
- android - 如何在现有项目中创建和使用 Android 库
- python - 如何使用“With open()”读取网址?
- python - 重新启动 pygame/python 脚本
- javascript - Uno.Lottie WebAssembly 中未捕获的类型 JavaScript 错误
- precision - 具有某些运动方程的数值积分器的误差极低
- c - 达到最大字符限制时如何折叠输入?
- angular - 使用 Angular 和 Deno 在浏览器中的 CSS MIME 不匹配