python - 如何计算(第 1 行和第 2 行)和(第 3 行和第 4 行)之间的时间增量等等?
问题描述
我有数据集,
ID Date
1 12/12/2020 13:00
1 12/12/2020 14:00
1 12/12/2020 15:00
1 12/12/2020 16:00
2 12/13/2020 13:00
2 12/13/2020 13:15
2 12/13/2020 14:00
2 12/13/2020 14:30
预期输出,
ID TimeDelta
1 120mins
2 45mins
我需要为每个 GROUPBY 找到(第 1 行和第 2 行)、(第 3 行和第 4 行)等之间的时间差,然后添加差异
解决方案
一种方法是枚举行,然后旋转:
enum = df.groupby('ID').cumcount()
df['col'] = enum % 2
df['row'] = enum //2
tmp = df.pivot_table(index=['ID','row'], columns='col',
values='Date', aggfunc='first')
tmp[1].sub(tmp[0]).sum(level=0)
输出:
ID
1 0 days 02:00:00
2 0 days 00:45:00
dtype: timedelta64[ns]
推荐阅读
- apache-kafka - 如何使用 FME 处理 Kafka JDBC Sink 连接器
- python - 写入 DataFrame CSV 并遍历行 Python
- javascript - 如何创建比视图更大的可滑动水平 div?
- c# - 在同一个项目.Net Core中强制执行不同的Nuget包版本
- c# - 如何在 .core 中更改 Swagger 的基本 url 取决于请求
- html - 图像和边框之间的空间
- hadoop - 为什么 FSDataOutputStream 的 hsync 和 getPos 函数不同步?
- html - 如何将导航栏项目与右侧对齐(最小化时也在数据切换中)?
- security - 增强型强名称 (SNK) 和个人交换格式 (PFX) 之间有什么区别,应在何时使用它们?
- apify - Apify 网页上的产品变体