我有一组从07-2月19日到17-2月19日的小时数据:
t v_amm v_alc v_no2
0 2019-02-07 08:00:00+00:00 0.320000 0.344000 1.612000
1 2019-02-07 09:00:00+00:00 0.322889 0.391778 1.580889
2 2019-02-07 10:00:00+00:00 0.209375 0.325208 2.371250
...
251 2019-02-17 19:00:00+00:00 1.082041 0.652041 0.967143
252 2019-02-17 20:00:00+00:00 0.936923 0.598654 1.048077
253 2019-02-17 21:00:00+00:00 0.652553 0.499574 1.184894
另一组类似的小时数据,从01-3月19日到11-3月-19:
t v_amm v_alc v_no2
0 2019-03-01 00:00:00+00:00 0.428222 0.384444 1.288222
1 2019-03-01 01:00:00+00:00 0.398600 0.359600 1.325800
2 2019-03-01 02:00:00+00:00 0.365682 0.352273 1.360000
...
244 2019-03-11 04:00:00+00:00 0.444048 0.415238 1.265000
245 2019-03-11 05:00:00+00:00 0.590698 0.591395 1.156977
246 2019-03-11 06:00:00+00:00 0.497872 0.465319 1.228298
然而,在17-Feb-19和01-3月-19之间没有可用的数据.因此,我想找出每小时平均数据基于一周的一天,以模拟丢失的每小时数据之间的17-2月19日和01-3月-19日。
换句话说,使用一周中同一天的所有小时数据,并找出当天每小时的平均值。2月17日至2月19日至01日至3月19日的预期产出如下:
t v_amm v_alc v_no2
0 2019-02-17 22:00:00+00:00 1.082041 0.652041 0.967143
1 2019-02-17 23:00:00+00:00 0.936923 0.598654 1.048077
2 2019-02-18 00:00:00+00:00 0.652553 0.499574 1.184894
...
250 2019-02-29 21:00:00+00:00 0.428222 0.384444 1.288222
251 2019-02-29 22:00:00+00:00 0.398600 0.359600 1.325800
252 2019-02-29 23:00:00+00:00 0.365682 0.352273 1.360000
有人知道如何在熊猫身上获得这个吗?
发布于 2020-03-18 11:21:16
我会通过添加一个临时列"day_of_week“来解决这个问题。您可以使用以下方法轻松生成此值:
df['day_of_week'] = df.t.dt.dayofweek
(pandas.DatetimeIndex.dayofweek文档)
接下来,您需要为每个工作日生成平均值:
daily_mean = df.groupby(by='day_of_week').mean()
接下来的步骤取决于您需要的值。daily_means变量具有所需的所有平均值。
下一步可能是通过生成日期值、生成相应的工作日和插入生成的平均值来创建缺少的行。
https://stackoverflow.com/questions/60738136
复制相似问题