python - 合并 Pandas 数据框

标签 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

最佳答案

您可以使用merge使用外连接和参数 indicator,然后通过 boolean indexing 过滤不包含 both 值的行最后通过drop删除列_merge并与 reset_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

关于python - 合并 Pandas 数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42359253/

相关文章:

python - 稀疏数据集上的谱聚类

python - np.array ndmin 参数 : specify placement of added dimensions

python - Django : Migration of polymorphic models back to a single base class

python - 使用 Pandas 的字典键和值的列名称

python - 计算 Pandas 中选定(多个)列中出现的总次数

python - 使用 Django 接口(interface)将 PostgreSQL 数据库中的二维数组放入二维列表 Python

python / Pandas : create summary table

python - 我们可以在函数映射需要超过 1 个参数的地方应用 pandas.map() 吗?

python - 如何将数据帧列表从 R 导出到 Python?

python - 复制 Pandas DF N 次