首页 > 解决方案 > 我如何在 pandas 数据框中进行 group_by 并提取这些组的时间段

问题描述

这是我的问题,我花了很多时间来解决这个问题......

我的数据框是:

idx value                   timestamp
0   2070.0 2020-03-16 10:21:00.667138+00:00
1   2070.0 2020-03-16 10:20:00.667138+00:00
2   2070.0 2020-03-16 10:19:00.667138+00:00
3   2070.0 2020-03-16 10:18:00.667138+00:00
4   2060.0 2020-03-16 10:17:00.667138+00:00
5   2060.0 2020-03-16 10:16:00.667138+00:00
6   2060.0 2020-03-16 10:15:00.667138+00:00
7   2060.0 2020-03-16 10:14:00.667138+00:00
8   2050.0 2020-03-16 10:13:00.667138+00:00
9   2050.0 2020-03-16 10:12:00.667138+00:00
10  2050.0 2020-03-16 10:11:00.667138+00:00
11  2050.0 2020-03-16 10:10:00.667138+00:00

并且使用 groupby() 我无法按值和范围从组中获取组。

我需要得到:

idx   value    intial         final
0     2070    10:21:00      10:17:00
1     2060    10:17:00      10:13:00
2     2050    10:13:00      10:10:00

任何帮助将不胜感激

标签: python-3.xpandas

解决方案


groupby() 需要链接另一个方法,例如 sum()、mean() 或任何其他方法。对你有用的是这样的:

df2['initial']=df.groupby('value').min()['timestamp']
df2['final']=df.groupby('value').max()['timestamp']

但是您仍然需要处理日期数据以提取小时。这个链接解释了如何做到这一点。


推荐阅读