我想使用列平均值和 var1 作为索引,基于控制表 (fillna_mean) 填充 DataFrame (df) 列 (var4) 中的 NaN 值。在数据帧中,我希望它们在 var1 上匹配。
我尝试用 fillna 做到这一点,但我没有让它完全发挥作用。如何以智能方式执行此操作,使用 df.var1 作为匹配 fillna Mean.var1 的索引?
df:
df = pd.DataFrame({'var1' : list('a' * 3) + list('b' * 2) + list('c' * 4) + list('d' * 3)
,'var2' : [i for i in range(12)]
,'var3' : list(np.random.randint(100, size = 12))
,'var4' : [1, 2, np.nan, 3, 2, np.nan, 1, 34, np.nan, np.nan, 12, 12]
})
fillna_mean:
fillna = pd.DataFrame({'var1' : ['a', 'b', 'c', 'd'],
'mean' : [1, 3.5, 6.5, 10]})
最终结果是这样的:
var1 var2 var3 var4
a 0 69 1.0
a 1 17 2.0
a 2 83 1.0
b 3 12 3.0
b 4 36 2.0
c 5 68 6.5
c 6 13 1.0
c 7 30 34.0
c 8 23 6.5
d 9 82 10.0
d 10 32 12.0
d 11 19 12.0
预先感谢您的意见!
/swepab