У меня есть кадр данных, который выглядит следующим образом ( main_df ):
value created_at
0 18.930542 2019-03-04 02:43:08 UTC
1 18.895210 2019-03-04 02:44:09 UTC
2 0.000000 2019-03-04 02:45:09 UTC
3 0.000000 2019-03-04 02:46:10 UTC
4 0.000000 2019-03-04 02:47:11 UTC
5 0.000000 2019-03-04 02:48:12 UTC
6 0.000000 2019-03-04 02:49:13 UTC
7 18.857025 2019-03-04 02:50:14 UTC
8 18.857025 2019-03-04 02:51:14 UTC
9 18.847290 2019-03-04 02:52:15 UTC
10 18.847290 2019-03-04 02:53:17 UTC
11 0.000000 2019-03-04 02:54:17 UTC
12 0.000000 2019-03-04 02:55:19 UTC
13 0.000000 2019-03-04 02:56:19 UTC
14 18.837677 2019-03-04 02:57:20 UTC
Я хочу найти сегменты повторяющихся нулевых значений внутри столбца «значение».Я знаю, как найти нули, просто сделав это:
zeros_df=main_df.loc[main_df['value'] == 0]
Что оставило бы мне следующий фрейм данных ( aux_df1 ):
Теперь я хотел бы получить, и у меня нет идеи, как это сохранить только начало и начало каждой последовательной серии индексов в новом фрейме данных с именем aux_df2 и вычислитьразница во времени между началом и концом каждой серии последовательных значений в минутах.Я собираюсь сделать последнюю часть с этим (хотя я хотел бы вычислить разницу только в парах, между каждой парой начало-конец):
aux_df2['t_diff'] = ['temp_index'].diff().astype('timedelta64[m]')
Но в первой части я не знаю, каксделать это.Я ищу, чтобы aux_df2 выглядело так:
Может кто-нибудь помочь мне, пожалуйста?Заранее спасибо.
Редактировать: в ответ на @peer, вот как я генерирую фрейм данных.Обратите внимание, что снимки выше не отражают изменение часового пояса с UTC на EST.
import pandas as pd
filepath=r'C:\Users\myfile.csv'
main_df=pd.read_csv(filepath)
main_df['created_at']=main_df['created_at'].apply(pd.to_datetime)
main_df['created_at'] = main_df['created_at'].dt.tz_localize('UTC').dt.tz_convert('EST')