使用Python / Pandas / Numpy。尝试用先前值和后续值的平均值替换缺失值。
例如,[第1天:100,第2天:NaN,第3天:NaN,第4天:400]。
我需要
的解决方案a)用简单的平均值即第2天和第3天填充。 250;
b)使用基于日期范围的线性插值填充day2和day3,即day2 = 200和day3 = 300。
谢谢
答案 0 :(得分:1)
data = {
'day':['day1', 'day2', 'day3','day4'],
'value': [100, np.nan, np.nan, 400]
}
data = pd.DataFrame(data)
# solution a)
data['value'] = data['value'].fillna(250)
# solution b)
data['value'] = data['value'].interpolate()
答案 1 :(得分:0)
您可以尝试使用正向和反向填充进行插值,例如
Col A
1
2
3
NaN
5
NaN
9
1
您可以使用以下代码对此进行修改:
df= pd.concat([df.ffill(), df.bfill()]).groupby(level=0).mean()
结果数据将是:
Col A
1
2
3
4
5
7
9
1