如何根据时间间隔拆分熊猫数据框

时间:2020-12-28 12:45:14

标签: python pandas dataframe

我有一个带有“DATE_TIME”列的 Pandas 数据框。

<头>
DATE_TIME 样本 VALUE
2020-12-10 10:52:48 1 3.22
2020-12-10 10:52:54 2 2.93
2020-12-10 10:53:00 3 2.27

每当时间间隔大于 5 分钟时,我想将数据帧拆分为不同的数据帧。

我发现 this post 非常有用,但没有解决我的问题,因为它没有创建数据框。我找不到错误:

all_data["DATE_TIME"] = pd.to_datetime(all_data["DATE_TIME"])

group_samples = (all_data["DATE_TIME"].dt.minute > (all_data["DATE_TIME"].dt.minute.shift() + 5)).cumsum()
grouped = all_data["DATE_TIME"].dt.minute.groupby(group_samples)
group_list = [g for k,g in grouped]
group_list[2]

Out[]
1097    53
1100    53
1103    53
1106    54
1109    54
1112    54
1115    54
1118    54
1121    54
1124    54
1127    55
1130    55
...

非常感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

grouped = all_data["DATE_TIME"].dt.minute.groupby(group_samples) 应该只是 grouped = all_data.groupby(group_samples)

第一个的问题是你只对只有几分钟的系列进行分组。所以输出将只有分割数据帧的分钟数。

将其更改为按 group_samples 对完整数据框进行分组可为您提供输出中的所有列。