注意(保存)具有python pandas的dataset_a和dataset_b的不匹配条目

时间:2016-03-04 16:13:21

标签: python database pandas dataframe

你们可以看到我们失去了两个帧的值,因为某些键不匹配。我要找的是注意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,一个用于“内部”,另一个用于非匹配

1 个答案:

答案 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