我想将两列合并如下
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
答案 0 :(得分:4)
>>> 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()
来删除空格。