I have a pandas df with 2 columns A and B. What I need is a new merged column 'result', in which A is preferred to B. I really thought it would be easy but still no solution. How would you guys do that? Thanks for your help.
A   B   result
go  for go
go      go
go      go
    for for
    for for
Use combine_first or 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
Or:
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
EDIT:
For replace empty space to NaNs use:
df = df.replace('', np.nan)
Or:
df = df.mask(df == '')
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With