我有一本看起来像这样的字典
dict = {'b' : '5', 'c' : '4'}
我的数据框看起来像这样
A B
0 a 2
1 b NaN
2 c NaN
是否有办法使用字段映射从A列到B列填充NaN值,同时保留其余的列值?
答案 0 :(得分:9)
您可以在fillna中映射dict值
'<div>'
打印(DF)
df.B = df.B.fillna(df.A.map(dict))
答案 1 :(得分:1)
不幸的是,这不是像pd.fillna()
这样的内置函数的选项之一。
编辑:感谢您的纠正。显然这是可能的,如@ Vaishali的回答所示。
但是,您可以先在缺失值上对数据框进行子集化,然后将地图应用于您的字典。
df.loc[df['B'].isnull(), 'B'] = df['A'].map(dict)
答案 2 :(得分:1)
这可以简单地完成
df['B'] = df['B'].fillna(df['A'].apply(lambda x: dict.get(x)))
这也可以有效地用于更大的数据集。