Pandas 用列名替换 Null

Dan*_*ty2 3 python pandas

给定以下数据框: import pandas as pd

d = pd.DataFrame({'a':[1,2,3],'b':[np.nan,5,6]})
d
    a   b
0   1   NaN
1   2   5.0
2   3   6.0
Run Code Online (Sandbox Code Playgroud)

对于值为“NaN”的任何列,我想用列名替换该值。我的真实数据有很多列。

想要的结果:

    a   b
0   1   b
1   2   5.0
2   3   6.0
Run Code Online (Sandbox Code Playgroud)

提前致谢!

Max*_*axU 5

IUC:

In [60]: d.fillna(d.columns.to_series())
Out[60]:
   a  b
0  1  b
1  2  5
2  3  6
Run Code Online (Sandbox Code Playgroud)