我有一个带有“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
...
非常感谢您的帮助!
答案 0 :(得分:1)
grouped = all_data["DATE_TIME"].dt.minute.groupby(group_samples)
应该只是 grouped = all_data.groupby(group_samples)
第一个的问题是你只对只有几分钟的系列进行分组。所以输出将只有分割数据帧的分钟数。
将其更改为按 group_samples
对完整数据框进行分组可为您提供输出中的所有列。