2017-08-01 103 views
2

我現在有共享公共列像於是兩個dataframes:熊貓系列的垂直合併

df1 = 
    Text Val 
    "This"  1 
    "That"  2 
    "Is"  3 
    "Not"  '' 
    "Working" '' 

df2 = 
    Text Val 
    "This"  '' 
    "That"  '' 
    "Is"  '' 
    "Not"  4 
    "Working" 5 

我想通過以下方式兩個dataframes合併:

merged_df = 
    Text Val 
    "This"  1 
    "That"  2 
    "Is"  3 
    "Not"  4 
    "Working" 5 

從本質上講,兩個數據幀,df1和df2都共享一個共同的「文本」列。所有的值都是相似的。但是,在df1中,沒有對應於「Not」和「Working」的行的值,但這些行在df2中可用。

如何將這些方法堆疊在一起來提出merged_df?相比於我的實際數據

的例子是微不足道的,但希望這有助於

回答

3

您可以使用combine_firstset_index爲對齊數據並更換到NaN S(如有必要):

df1['Val'] = df1['Val'].replace("''",np.nan) 
df2['Val'] = df2['Val'].replace("''",np.nan) 

df = df1.set_index('Text').combine_first(df2.set_index('Text')).reset_index() 
print (df) 
     Text Val 
0  This 1 
1  That 2 
2  Is 3 
3  Not 4 
4 Working 5 
+0

感謝@jezrael !我對熊貓的combine_first方法一無所知。 –

+0

很高興可以幫助,美好的一天! – jezrael