如何找到两个熊猫数据框之间的交集

时间:2021-07-30 12:34:25

标签: python pandas dataframe

我的 df1 有 200 000 条记录,df2 有 5 000 条记录。

两个数据框都有相似的列。 df1 中有 5000 条 df2 记录。

当我用下面的代码检查交集时:

s1 = pd.merge(result, df2, how='inner', on=['id'])
l2 = len(s1)

这里 l2(公共记录的长度)是 5012 而它应该是 5000,因为 df2 只有 5000 条记录。我只找到 df2 和 df1 中的常见记录。 我也尝试删除重复项但结果相同

使用以下代码:

list_np=np.intersect1d(df1.id, df2.id).tolist()
len(list)

使用此方法的公共记录长度为 4997。 仍然有 3 个记录的差异即将到来。 我不明白如何解决这个问题。

1 个答案:

答案 0 :(得分:0)

对于要合并的相同键,您可能在两个数据框中都有重复的行。

尝试调查:

uniqueValues_Df1 = df1['id'].unique()
diff_d1 = len(uniqueValues_Df1) - len(df1)
    
uniqueValues_Df2 = df2['id'].unique()
diff_d2 = len(uniqueValues_Df2) - len(df2)

diff_d1 / diff_d2 应该是 0