如何将三个字符串列组合成一个在 Pandas 中具有 Nan 值的列

SOK*_*SOK 8 python pandas

我有以下数据框:

   A    B     C    
0 NaN   NaN   cat
1 dog   NaN   NaN   
2 NaN   cat   NaN   
3 NaN   NaN   dog
Run Code Online (Sandbox Code Playgroud)

我想添加一个没有NaN值的值的列。以便:

   A    B     C    D
0 NaN   NaN   cat  cat
1 dog   NaN   NaN  dog 
2 NaN   cat   NaN  cat 
3 NaN   NaN   dog  dog
Run Code Online (Sandbox Code Playgroud)

它会使用一个lambda函数吗?或者fillna?任何帮助,将不胜感激!谢谢!

Hal*_*Ali 6

使用combine_first链式

df['D'] = df.A.combine_first(df.B).combine_first(df.C)
Run Code Online (Sandbox Code Playgroud)

或者,向前填充并选择最后一列

df['D'] = df.ffill(axis=1).iloc[:,-1]

# specifying the columns explicitly:
df['D'] = df[['A', 'B', 'C']].ffill(1).iloc[:, -1]
Run Code Online (Sandbox Code Playgroud)