Вычисление среднечасового значения с использованием даты и времени с часами и минутами, которые не разделяются двоеточием - PullRequest
0 голосов
/ 04 марта 2020

В работе с фреймом данных pandas. В моих данных есть столбец, который показывает часы в минутах в следующем формате:

    Hour         ALTM         PALT       TMPC       DWPC        RELH  \
0      0  1012.868116  1012.368116  23.556731  19.368497   79.346506   
1     30  1013.142857  1012.642857  23.000000  17.428571   73.714286   
2     35  1012.000000  1011.500000  23.000000  22.000000   94.000000   
3    100  1012.685307  1012.185307  23.251641  19.069231   79.638462   
4    130  1013.333333  1012.833333  24.833333  19.000000   73.166667   
5    200  1012.265487  1011.765487  23.104930  19.143939   80.640506   
6    201  1012.000000  1011.500000  23.000000  21.000000   89.000000   
.
.
.  
68  2330  1013.666667  1013.166667  25.333333  17.500000   63.666667

Первые два числа - это час, а вторые два - минуты (за исключением случаев, когда час просто сингл ди git). Я пытаюсь почасово использовать все эти переменные.

Когда я преобразовываю столбец Часов в дату и время, используя эту команду:

hour_goss_mean['Hour'] = pd.to_datetime(hour_goss_mean['Hour']).dt.strftime('%H%m')

, а затем выполняю

hour_goss_mean['Hour']

Я получаю

0     0001
1     0001
2     0001
3     0001
4     0001
5     0001
6     0001

где второй столбец - новый столбец Hour. Я не уверен, связано ли это с тем, что в данных час и минуты не разделены двоеточием. Я не понимаю, как получить почасовое среднее.

1 Ответ

0 голосов
/ 04 марта 2020

IIU C, сначала вам нужно извлечь часы и группы:

hours = df['Hour'].astype(int) // 100
df.drop('Hour', axis=1).groupby(hours).mean()

Вывод:

             ALTM         PALT       TMPC       DWPC       RELH
Hour                                                           
0     1012.670324  1012.170324  23.185577  19.599023  82.353597
1     1013.009320  1012.509320  24.042487  19.034616  76.402565
2     1012.132743  1011.632743  23.052465  20.071970  84.820253
23    1013.666667  1013.166667  25.333333  17.500000  63.666667
...