Pandas用列名替换空值

3

给定下面的数据框:

导入pandas库:

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

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

期望结果:

    a   b
0   1   b
1   2   5.0
2   3   6.0

提前致谢!

1个回答

5

IIUC:

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

1
谢谢,我会在确认后标记为正确。作为后续,如果我想用列名填充任何非空值,该怎么办? - Dance Party2
@DanceParty2,这是一个有趣的问题!让我试着找到一个解决方案... - MaxU - stand with Ukraine
当然。我会发布一个单独的问题并分享链接。 - Dance Party2
1
谢谢。我已经在这里发布了问题:https://dev59.com/vqTja4cB1Zd3GeqPDo0i - Dance Party2
@DanceParty2,你已经从root那里得到了一个非常整洁优雅的答案;-) - MaxU - stand with Ukraine

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接