簡體   English   中英

如何使用列索引比較兩個數據框?

[英]How to compare two dataframes using column index?

我正在使用 INSERT OVERWRITE LOCAL DIRECTORY 命令將 hdfs 查詢 output 導出到 csv 文件中。 由於這個導出數據沒有 header。 I got another dataframe from Oracle output with file header which I need to compare against hdfs output.

df1 = pd.read_csv('/home/User/hdfs_result.csv', header = None)
print(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_sql(sqlquery, sqlconn)


  UNIT  STATUS Date
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 沒有 header 我不能使用 Merge 或 Join 來比較數據。 雖然我可以做 df-df1.

請建議我如何比較和打印差異?

您可以通過底層 numpy 數組進行比較:

df2.where(df2==df1.values)

Output (差異被掩蓋為NaN

   UNIT STATUS                 Date
0  XPRN      A  2019-12-16 00:00:00
1  XPRW    NaN  2019-12-16 00:00:00
2  XPS2      I  2003-09-30 00:00:00

對於不匹配的行:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM