Python 使用datetime计算小时平均值,时间和分钟不为';t用冒号分隔
在我的工作与熊猫数据帧。我的数据中有一列按以下格式显示小时(以分钟为单位):Python 使用datetime计算小时平均值,时间和分钟不为';t用冒号分隔,python,arrays,pandas,datetime,mean,Python,Arrays,Pandas,Datetime,Mean,在我的工作与熊猫数据帧。我的数据中有一列按以下格式显示小时(以分钟为单位): 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.71428
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
前两个数字是小时,后两个数字是分钟(小时只有一位数的情况除外)。我试图对所有这些变量取每小时平均值
使用以下命令将小时列转换为日期时间时:
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
其中第二列是新的小时列。我不确定这是否是因为数据中没有用冒号分隔小时和分钟。我不知道如何获得小时平均值。IIUC,首先需要提取小时数和分组比:
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