我有两个数据框,我想比较这两个数据框并打印df 1中不存在的值。例如:
df1 = |id|check_column1|
|21|abc|
|21||bcd|
|22|hqo|
|22|hsd|
|23|mno|
df2 =
|id|check_column1|
|21|abc|
|22|hqo|
|23|xyz|
我希望输出为
|id|check_column1|chack_colum2|
|23|mno|xyz|
我不希望输出包括其值已存在于df 1中的21-bcd和22-hsd。如果df 1中存在2个值,df 2中反映了1个值,则表示同一ID,我不希望将该ID视为未匹配。
df = pd.merge(df1,df2,left_on =['id',df1.groupby('id').cumcount()], right_on = ['id',df2.groupby('id').cumcount()] )
但这给了所有的错过匹配我想只是那是完全不同的彼此在两个表
1条答案
按热度按时间ijnw1ujt1#
考虑以下设置:
如何为每个 Dataframe 的每个
id
创建一个set
,然后计算对应id的 Dataframe 之间的集合差异?这允许只选择
df2
中存在df1
中没有的值的行: