首页 > 解决方案 > 使用列相互比较两个不同的数据框

问题描述

我想将两个相同列的值与不同的数据框进行比较

DF1
  id         values_externalCode
  3DR_Ntype   PRO_END
  3DR_NType   CON_END
  abc         a

DF2
  id         values_externalCode
  3DR_Ntype   PRO_END
  3DR_NType   CON_END
  abc         b

下面的代码是我使用的只是比较相同的数据框列值

match = data_frame1.loc[(data_frame1['id'] ==data_frame1['id']) & (data_frame1['values_externalCode'] == data_frame1['values_externalCode'])]

如果我使用下面的代码来比较两个数据框列,它会给我一个错误

match = data_frame1.loc[(data_frame1['id'] ==data_frame2['id']) & (data_frame1['values_externalCode'] == data_frame2['values_externalCode'])]

ValueError: Can only compare identically-labeled Series objects

我的问题是如何比较两个不同数据帧之间的两个相同列值,并且只显示两个数据帧之间两个相同列值的匹配记录

任何帮助将不胜感激

预期结果

  DF1
  id         values_externalCode
  3DR_Ntype   PRO_END
  3DR_NType   CON_END

标签: pythonpandasdataframe

解决方案


推荐阅读