在熊猫中将两列文本与NaN组合在一起

时间:2016-08-24 19:00:16

标签: python pandas numpy nan

我想将两列合并如下

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 

1 个答案:

答案 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()来删除空格。