通过在其他列中查找非空值来创建列



我正试图在我的数据帧中创建一列,该列搜索每一列并检查特定行的值是否为null,如果不是,则新列将包含此值,否则将跳过它。两列不可能包含非null值。

例如:

A   B   C   D   E
NaN NaN NaN NaN   a 
b NaN NaN NaN NaN
NaN NaN NaN NaN NaN 

我的预期输出:

A   B   C   D   E  new_column
NaN NaN NaN NaN   a           a
b NaN NaN NaN NaN           b
NaN NaN NaN NaN NaN         NaN

您可以水平bfill,然后选择第一列:

df['new_column'] = df.bfill(axis=1).iloc[:, 0]

输出:

>>> df
A   B   C   D    E new_column
0  NaN NaN NaN NaN    a          a
1    b NaN NaN NaN  NaN          b
2  NaN NaN NaN NaN  NaN        NaN

最新更新