我有一个包含 2 列 A 和 B 的 pandas df。我需要的是一个新的合并列“结果”,其中 A 优于 B。我真的认为这很容易,但仍然没有解决方案。你们会怎么做?感谢您的帮助。
A B result
go for go
go go
go go
for for
for for
最佳答案
使用combine_first
或 fillna
:
df['result'] = df['A'].combine_first(df['B'])
print (df)
A B result
0 go for go
1 go NaN go
2 go NaN go
3 NaN for for
4 NaN for for
或者:
df['result'] = df['A'].fillna(df['B'])
print (df)
A B result
0 go for go
1 go NaN go
2 go NaN go
3 NaN for for
4 NaN for for
编辑:
要将空格替换为 NaN
,请使用:
df = df.replace('', np.nan)
或者:
df = df.mask(df == '')
关于python - 优先合并 2 列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46807354/