合并Pandas数据帧

时间:2017-02-21 05:17:17

标签: python pandas dataframe merge

所以,我有两个pandas数据帧:

a       b
abc    def
ghi    jkl
mno    pqr

a       b
abc    def
ghi    jkl
stu    vwx

我想要做的是合并这些数据帧,但只保留不重叠的数据帧(数据帧1和2中的第3行)

a     b
stu   vwx
mno   pqr

1 个答案:

答案 0 :(得分:1)

您可以将merge与外部联接和参数indicator一起使用,然后按boolean indexing过滤不重要both的行,最后按{删除_merge列{ {3}}和drop默认index(0,1,2 ...):

df = pd.merge(df1, df2, how='outer', indicator=True)
print (df)
     a    b      _merge
0  abc  def        both
1  ghi  jkl        both
2  mno  pqr   left_only
3  stu  vwx  right_only

df = df[df._merge != 'both'].drop('_merge', axis=1).reset_index(drop=True)
print (df)
     a    b
0  mno  pqr
1  stu  vwx