1
我有一个熊猫DF 2列A和B.我需要的是一个新的合并列“结果”,其中A优于B.我真的认为这将是容易的,但仍然没有解。你们会怎么做?谢谢你的帮助。合并2列优先
A B result
go for go
go go
go go
for for
for for
我有一个熊猫DF 2列A和B.我需要的是一个新的合并列“结果”,其中A优于B.我真的认为这将是容易的,但仍然没有解。你们会怎么做?谢谢你的帮助。合并2列优先
A B result
go for go
go go
go go
for for
for for
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 == '')
jezrael感谢您的回复。我其实有空值,而不是楠表并在第一次无法重现您的解决方案,直到我明白,我必须一切为NaN空值转换为使combine_first工作。 – Vinh
而我只是收集足够的分数,现在就可以投票答案,这就是soooo cooool! – Vinh
你需要DF = df.replace( '',np.nan)或DF = df.mask( '')。我只用手机,所以未经测试。 – jezrael