我的 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 个记录的差异即将到来。 我不明白如何解决这个问题。
答案 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
。