比较Python Pandas中的2个不同数据框

时间:2020-04-25 11:49:56

标签: python pandas

我有2个具有相同列名的数据框。我想比较所有行。

我想比较df1中的所有参数值和结果,以及df2中相同的参数和结果。

谢谢。

df1:
Parameters            Result
xxx                     yes
yyy                     no


df2:
Parameters            Result
xxx                     yes
yyy                     no

1 个答案:

答案 0 :(得分:1)

首先必须使用Parameters的相同顺序和两个DataFrame的相同长度,然后才可以使用:

df2['new'] = np.where(df1['Result'].eq(df2['Result']), 'OK', '')

如果可能的顺序不同或长度不同,请将Series.mapnumpy.whereSeries.eq相等:

s = df2['Parameters'].map(df1.set_index('Parameters')['Result'])

df2['new'] = np.where(s.eq(df2['Result']), 'OK', '')
print (df2)
               Parameters Result new
0    PubkeyAuthentication     no    
1         PermitRootLogin     ys    
2  PasswordAuthentication     no    
3    PermitEmptyPasswords     no  OK
4           X11Forwarding     no  OK
5              AllowUsers   user  OK