我有数据框并且有 NaN 值:
col1 col2 col3
234 NaN 1
NaN NaN 18
9 2 NaN
我有一个包含值 [12, 15, 3] 的列表,我需要填写这些列:
欲望输出
col1 col2 col3
234 15 1
12 15 18
9 2 3
我可以用
for (col, mean) in zip(df.columns, means):
df[col].fillna(mean, inplace=True)
但是有什么办法可以不用循环吗?
请您参考如下方法:
构建一个 dict ,然后 fillna
l1= [12, 15, 3]
df.fillna(dict(zip(df.columns,l1)))
Out[120]:
col1 col2 col3
0 234.0 15.0 1.0
1 12.0 15.0 18.0
2 9.0 2.0 3.0
