Python 如何使用列索引比较两个数据帧?

Python 如何使用列索引比较两个数据帧?,python,pandas,Python,Pandas,我正在使用INSERT OVERWRITE LOCAL DIRECTORY命令将hdfs查询输出导出到csv文件中。因为这会导出没有标题的数据。 我从Oracle输出中得到了另一个数据帧,文件头需要与hdfs输出进行比较 df1=pd.read\u csv('/home/User/hdfs\u result.csv',header=None) 打印(df1) 0 1 2 0 XPRN A 2019-12-16 00:00:00 1 XPRW I 2019-

我正在使用INSERT OVERWRITE LOCAL DIRECTORY命令将hdfs查询输出导出到csv文件中。因为这会导出没有标题的数据。 我从Oracle输出中得到了另一个数据帧,文件头需要与hdfs输出进行比较

df1=pd.read\u csv('/home/User/hdfs\u result.csv',header=None)
打印(df1)
0  1                    2
0 XPRN A 2019-12-16 00:00:00
1 XPRW I 2019-12-16 00:00:00
2 XPS2 I 2003-09-30 00:00:00
df=pd.read\u sql(sqlquery,sqlconn)
机组状态日期
0 XPRN A 2019-12-16 00:00:00
1 XPRW A 2019-12-16 00:00:00
2 XPS2 I 2003-09-30 00:00:00
因为df1没有标题,所以我不能使用合并或联接来比较数据。虽然我能做df-df1


请建议如何比较和打印差异?

您可以传递基础numpy数组进行比较:

df2.where(df2==df1.values)
输出(差异被屏蔽为
NaN

对于不匹配的行:

df2[(df2!=df1.values).any(1)]

您可以传递基础numpy数组进行比较:

df2.where(df2==df1.values)
输出(差异被屏蔽为
NaN

对于不匹配的行:

df2[(df2!=df1.values).any(1)]

你的预期产出是什么?你的预期产出是什么?谢谢你的回答。我需要找到不匹配的行。我可以用cmp=(df1-df2)diff=cmp来做。删除重复项(keep=False)请告诉我是否还有其他方法可以遵循?谢谢回答。我需要找到不匹配的行。我可以使用cmp=(df1-df2)diff=cmp来完成。删除重复项(keep=False)请告诉我是否还有其他方法可以遵循?