2017-03-01 121 views
3

我試圖將三個布爾數據框合併成一個,在至少一個其他數據框中顯示True。有沒有更好的方法來做到這一點比我下面有什麼?合併布爾熊貓數據幀的Cannonical方法

# sample data 
df_1 = pd.DataFrame({'gene': ['one','two','three'], 
         'A': [1, 0, 0], 
         'B': [1, 0, 0], 
         'C': [1, 0, 0]}) 
df_1.set_index('gene', inplace = True) 

df_2 = pd.DataFrame({'gene': ['one','two','three'], 
         'A': [0, 1, 0], 
         'B': [0, 1, 0], 
         'C': [0, 1, 0]}) 
df_2.set_index('gene', inplace = True) 

df_3 = pd.DataFrame({'gene': ['one','two','three'], 
         'A': [0, 0, 1], 
         'B': [0, 0, 1], 
         'C': [0, 0, 1]}) 
df_3.set_index('gene', inplace = True) 

# combine dataframes 
combined = ((df_1 > 0) | (df_2 > 0) | (df_3 > 0)) 

是否有一種更加規範的方式來結合數據框?

回答

2

的簡化版本:

df_1 | df_2 | df_3 

另一個版本:(不處理性能在這裏,只是變化)

sum([df_1, df_2, df_3]) 
+1

總和([df_1,df_2,df_3])> 0也更有信心... –

+1

不,我會做.astype(布爾) – Boud