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