2015-12-15 55 views
2

我想加入熊貓數據框柱與條件 - 分隔欄只有當結束一個不爲空逗號:熊貓,聯合字符串列與條件,卻得到了一個系列的真值是不明確的

import numpy as np 
import pandas as pd 

df = pd.DataFrame({'score':np.random.randn(3), 
        'person1':[x*3 for x in list('ABC')], 
        'person2':[x*3 for x in list('DEF')]}) 
df 

df['person2'][1]="" 
#print(df['person1']+("" if df['person2']=="" else ", "+df['person2'])) 
#print(df['person1']+("" if not df['person2'] else ", "+df['person2'])) 
#print(df['person1']+("" if not df['person2'].values else ", "+df['person2'])) 
# ValueError: The truth value of a Series is ambiguous. 

但是,搜索命中的所有建議都不起作用。我所有的上述嘗試結束了錯誤:

ValueError: The truth value of a Series is ambiguous. 

PS,考慮到我參加多列,其中一些也許空白,我不希望有多個逗號的字符串結束,是否可以編寫一個函數,以便在加入多個列時調用該函數?

請幫忙。由於

回答

3

您可以將一個函數每一行是這樣的:

df.apply(lambda row: row.person1 + (',' + row.person2 if row.person2 else ''), 
     axis=1)