2016-08-24 4 views
1

Я хочу, чтобы объединить две колонки, как показано нижеОбъединение двух столбцов текста с 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 

ответ

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(), чтобы отменить пробел, если это необходимо.

Смежные вопросы