在 pandas 中将两列文本与 NaN 合并

Combine two columns of text with NaN in pandas

我想按如下方式合并两列

import numpy as np
import pandas as pd    
data = pd.DataFrame({ 'a' : [np.nan, 'abc'], 'b' : ['abc', 'abc']})
data['c']=data['a']+' '+data['b']
data

     a   b    c
0   NaN abc   NaN
1   abc abc abc abc

问题出在NaN,我想得到

Nan + abc = abc

我可以这样做

data = pd.DataFrame({ 'a' : [np.nan, 'abc'], 'b' : ['abc', 'abc']})
data = data.replace( np.nan, '',regex=True)
data['c']=data['a']+' '+data['b']
data   

    a     b    c
0       abc abc
1   abc abc abc abc

但这并不总是很方便。有没有办法像这样组合?

NaN + abc = abc 
>>> data['c']=data['a'].fillna('') + ' ' + data['b'].fillna('')
>>> data
     a    b        c
0  NaN  abc      abc
1  abc  abc  abc abc

但是,请注意 data['c'][0] == ' abc'。如果需要,您必须使用 .str.strip() 去除空格。