2014-07-11 60 views
1

我以這種方式建立在Python pandas字符串表達式熊貓列表達式用,如果別人

df['ABC'] = (df['A'] 
        + ' + ' + df['B'] 
        + ' + ' + df['C']) 

然而,pandas返回該錯誤

TypeError: cannot concatenate 'str' and 'float' objects 

的數據幀NaN幾列並且這些情況下字符串連接失敗。我如何編寫一個語句來實現如下所示的測試用例的連接。好像我們要表達中添加ifelse上述聲明:

A B C ABC 
x   x 
x y  x + y 
x y z x + y + z 

回答

3

你可以這樣做:

>>> join_row = lambda ts: ' + '.join(ts.dropna()) 
>>> df[['A', 'B', 'C']].apply(join_row, axis=1) 
0   x 
1  x + y 
2 x + y + z 
dtype: object 

[['A', 'B', 'C']]需要只有在有數據幀等欄目。