2
我有一个半小时分辨率的多年时间序列,有一些差距,并希望基于其他年份的平均值来计算它们,但同时。例如。如果在2005年1月1日中午12点价值缺失,我想同时采取所有的价值,但是从所有其他年份开始平均它们,然后用平均值计算缺失值。下面是我的了:使用熊猫进行插补
import pandas as pd
import numpy as np
idx = pd.date_range('2000-1-1', '2010-1-1', freq='30T')
df = pd.DataFrame({'somedata': np.random.rand(175345)}, index=idx)
df.loc[df['somedata'] > 0.7, 'somedata'] = None
grouped = df.groupby([df.index.month, df.index.day, df.index.hour, df.index.minute]).mean()
这给了我我需要的平均水平,但我不知道如何把它们插回到原来的时间序列。
你想要时间序列数据帧的重采样方法。数据差距可以得到NaN值。 – mdurant
你能否澄清一下究竟是什么意味着你要在哪里进行评估?在你的例子中,你正在计算分钟的方法,所以你最终会得到一个巨大的向量。你想要估算这些粒度值吗? –
@FelipeGerard,实际上我是这么做的,但是由于时间分辨率是30分钟,所以分组的对象并不是那么大(本例中为17568)。基本上,如果有3年的数据(2004-2005-2006),那么我会在2004年1月1日中午12点和2006年1月1日中午12点取平均值,并将估计值2005-1-1 12:00。希望这更清楚。 – abudis