当时间跳跃时,在时间戳索引上拆分DF



例如,我使用以下DF:

Index                   Temperature
2019-11-14 08:25:30.000 50.776897   
2019-11-14 08:25:40.000 49.671967
2019-11-14 08:25:50.000 48.729610
2019-11-14 08:26:00.000 48.022270
2019-11-14 08:26:10.000 47.502003
2019-11-14 08:43:40.000 87.997314  <-- here i want to split the DF into two DF's
2019-11-14 08:43:50.000 90.791519
2019-11-14 08:44:00.000 93.656128
2019-11-14 08:44:10.000 95.525215
2019-11-14 08:44:20.000 95.694481

所以我使用了一个大的DF,当时间戳索引发生跳跃时,我想把DF分成小的DF。或者换句话说,每当下一个时间步长大于10秒时,我想分割数据帧。

我添加了一个组列来根据时间创建不同的组。因此,当索引时间差>10s将创建一个新组。

然后,我列出了DF的列表,并使用一个循环遍历DF,根据组号将其拆分。

df['groups'] = (df.index.to_series().diff().dt.seconds > 10).cumsum()
list_of_dfs = []
for ct, data in df.groupby('groups'):
list_of_dfs.append(data)

结果:

Index                   Temperature  groups
2019-11-14 08:25:30.000 50.776897    0
2019-11-14 08:25:40.000 49.671967    0
2019-11-14 08:25:50.000 48.729610    0
2019-11-14 08:26:00.000 48.022270    0
2019-11-14 08:26:10.000 47.502003    0
2019-11-14 08:43:40.000 87.997314    1
2019-11-14 08:43:50.000 90.791519    1
2019-11-14 08:44:00.000 93.656128    1
2019-11-14 08:44:10.000 95.525215    1
2019-11-14 08:44:20.000 95.694481    1

最新更新