Выберите Pandas строк данных на основе круглых часов - PullRequest
2 голосов
/ 16 апреля 2020

Индекс моего информационного кадра чередуется каждые 3 минуты:

Timestamp                value
2019-06-30 07:00:00    0.065248
2019-06-30 07:03:00    0.067896
2019-06-30 07:06:00    0.070529
2019-06-30 07:09:00    0.073034
2019-06-30 07:12:00    0.085928
                         ...   
2019-06-30 16:48:00    0.246681
2019-06-30 16:51:00    0.246745
2019-06-30 16:54:00    0.247110
2019-06-30 16:57:00    0.247174
2019-06-30 17:00:00    0.246338

Мне нужно выбирать каждый раунд для линейного графика.

Мое глупое решение:

hour_ls = ['2019-06-30 07:00:00', '2019-06-30 08:00:00','2019-06-30 09:00:00','2019-06-30 10:00:00',
           '2019-06-30 11:00:00','2019-06-30 12:00:00','2019-06-30 13:00:00','2019-06-30 14:00:00',
           '2019-06-30 13:00:00','2019-06-30 16:00:00','2019-06-30 17:00:00']

hour_ls = [pd.to_datetime(i) for i in hour_ls]
df.loc[hour_ls]

Есть ли pythonic \ pandei c зачем делать это чисто?

Ответы [ 2 ]

3 голосов
/ 16 апреля 2020

Вы можете использовать floor, чтобы найти часы, а затем проверить, равен ли индекс часу:

df[df.index == df.index.floor('H')]
0 голосов
/ 16 апреля 2020

После преобразования столбца в элементы datetime у вас теперь есть доступ к datetime.minute. Пример: Если у вас есть датафрейм df, как указано выше:

df['Timestamp'] = pd.to_datetime(df['Timestamp'])
hourly_entries = pd.DataFrame([el for el in df['Timestamp'] if el.minute == 0])

Это создаст новый фрейм данных с именем 'hourly_entries', который будет содержать все элементы с datetime.minute == 0.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...