Pandas:用字典引用另一列填充NaN值

Nat*_*sha 7 pandas

我有一本看起来像这样的字典

dict = {'b' : '5', 'c' : '4'}

我的数据框看起来像这样

   A  B
0  a  2
1  b  NaN
2  c  NaN
Run Code Online (Sandbox Code Playgroud)

有没有办法使用从列A到B的字典映射来填充NaN值,同时保留其余的列值?

Vai*_*ali 11

您可以在fillna中映射dict值

df.B = df.B.fillna(df.A.map(dict))
Run Code Online (Sandbox Code Playgroud)

打印(DF)

    A   B
0   a   2
1   b   5
2   c   4
Run Code Online (Sandbox Code Playgroud)


小智 6

这可以简单地完成

df['B'] = df['B'].fillna(df['A'].apply(lambda x: dict.get(x)))
Run Code Online (Sandbox Code Playgroud)

这对于更大的数据集也可以有效地工作。