Python:两个人如何从两个数据框中找出不同的行

时间:2019-11-17 12:11:18

标签: python pandas

我有两个数据框table1和table2:

表1

table1

table2

table2

我想将table1与table2进行比较,并返回表1和表2彼此缺少的行。

2 个答案:

答案 0 :(得分:1)

您可以这样做:

only_in_1 = table1.merge(table2.assign(key=1), how='left')
only_in_1 = only_in_1[pd.isna(only_in_1['key'])].drop('key', axis=1)

答案 1 :(得分:0)

import pandas as pd
import numpy as np
df1 = table1
df2 = table2

df_inner = df1.merge(df2, on = ['A', 'B', 'C'], how = 'inner')
df_outer = df1.merge(df2, on = ['A', 'B', 'C'], how = 'outer')
df_inner['label'] = np.ones(len(df_inner))
df = df_outer.merge(df_inner, on = ['A', 'B', 'C'], how = 'outer')
df = df[df['label'].isna()]
df = df.drop(['label'], axis = 1)