我有一个数据框:
Name A1 A2 A3
Andy 1 NaN NaN
Brian Nan NaN NaN
Carlos NaN 2 NaN
David NaN Nan 3
Frank 2 Nan Nan
对于每一行,在3列A1
、A2
和A3
中最多有一个非NaN单元格。因此,我想将它们合并到一列中,并删除所有为NaN的行。因此,上述数据帧将变为:
Name A A-ID
Andy 1 1
Carlos 2 2
David 3 3
Frank 2 1
A-ID
将存储原始列(A1、A2或A3)。带有Brian
的行被删除,因为所有3列都是NaN
天真地说,我可以编写一个for
循环来完成这项任务,但是有没有更具python风格和更快的方法呢
有几种方法可以做到这一点。最简单的可能是定义一个新列,它是其他列的总和或串联
然后,只保留B不为null的行
问候
此方法应达到预期的结果:
相关问题 更多 >
编程相关推荐