Python:将平均值替换为空值

时间:2019-10-18 08:16:14

标签: python pandas numpy data-analysis

使用Python / Pandas / Numpy。尝试用先前值和后续值的平均值替换缺失值。

例如,[第1天:100,第2天:NaN,第3天:NaN,第4天:400]。

我需要

的解决方案

a)用简单的平均值即第2天和第3天填充。 250;

b)使用基于日期范围的线性插值填充day2和day3,即day2 = 200和day3 = 300。

谢谢

2 个答案:

答案 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