Разделить DF по индексу отметки времени при скачке во времени - PullRequest
0 голосов
/ 05 августа 2020

В качестве примера я использую следующий 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 секунд.

1 Ответ

0 голосов
/ 06 августа 2020

Я добавил столбец группы для создания различных групп в зависимости от времени. Поэтому, когда разница во времени индекса> 10 с, будет создана новая группа.

Затем я составил список DF и использовал al oop до go через 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...