你们可以看到我们失去了两个帧的值,因为某些键不匹配。我要找的是注意left_frame和right_frame的不匹配条目数。我不知道该怎么做。
left_frame
key left_value
0 0 a
1 1 b
2 2 c
3 3 d
4 4 e
right_frame
key right_value
0 2 f
1 3 g
2 4 h
3 5 i
4 6 j
pd.merge(left_frame, right_frame, on='key', how='inner')
**所需输出:1 **
key left_value right_value
0 2 c f
1 3 d g
2 4 e h
**所需输出:2 **
key left_value right_value _merge
0 0 a NaN left_only
1 1 b NaN left_only
5 5 NaN i right_only
6 6 NaN j right_only
所以基本上,我想要两个DataFrame,一个用于“内部”,另一个用于非匹配
答案 0 :(得分:2)
如果您将合并类型更改为'外部'并传递_User
,然后您可以看到不匹配行的来源:
indicator=True
您可以In [193]:
pd.merge(left, right, how='outer', indicator=True)
Out[193]:
key left_value right_value _merge
0 0 a NaN left_only
1 1 b NaN left_only
2 2 c f both
3 3 d g both
4 4 e h both
5 5 NaN i right_only
6 6 NaN j right_only
在此列上致电groupby
:
count
如果您想过滤并保存结果:
In [194]:
pd.merge(left, right, how='outer', indicator=True).groupby('_merge').count()
Out[194]:
key left_value right_value
_merge
left_only 2 2 0
right_only 2 0 2
both 3 3 3