我有以下数据框:
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?任何帮助,将不胜感激!谢谢!
使用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)