Панды: правильно пересчитывать данные на почасовой частоте - PullRequest
0 голосов
/ 06 сентября 2018

В Python 3.6.3 у меня есть следующий фрейм данных df1:

                 dt     Val
2017-04-10 08:00:00     8.0
2017-04-10 09:00:00     2.0
2017-04-10 10:00:00     7.0
2017-04-11 08:00:00     3.0
2017-04-11 09:00:00     0.0
2017-04-11 10:00:00     5.0
2017-11-26 08:00:00     8.0
2017-11-26 09:00:00     1.0
2017-11-26 10:00:00     2.0

Я пытаюсь вычислить среднечасовое значение этих значений, чтобы получить:

    Hour     Val
08:00:00     7.00
09:00:00     1.00
10:00:00     4.66

Моя попытка:

df2 = df1.resample('H')['Val'].mean()

Возвращает тот же набор данных, что и df1. Что я делаю не так?

1 Ответ

0 голосов
/ 06 сентября 2018

Вдохновленный комментариями выше, я проверил, что у меня работает следующее:

df.groupby(df.index.hour).Val.mean() 

Или вы можете сделать значения индекса 'timedelta' dtypes

df.Val.groupby(df.index.hour.astype('timedelta64[h]')).mean()

dt
08:00:00    6.333333
09:00:00    1.000000
10:00:00    4.666667
Name: Val, dtype: float64
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...