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

时间:2020-06-04 21:12:20

标签: python pandas

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

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没有标题,因此我无法使用“合并”或“联接”来比较数据。虽然我可以做df-df1。

请提出如何比较和打印差异?

1 个答案:

答案 0 :(得分:2)

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

from plotly.offline import iplot, init_notebook_mode
from plotly.subplots import make_subplots
init_notebook_mode()
import plotly.graph_objs as go

trace = go.Scatter(
    x=aList,
    y=aDiffList,
    name=a_name,
    mode='markers',
    marker={'color' : 'rgb(0, 0, 0)', 'size' : 6}
)
data = [trace]
layout = {'title' : 
          {'text' : '<b>Title in Bold'}, 'x' : .5,
          'font' : {'size' : 24, 'family' : 'Raleway'}
         }
iplot({'data' : data, 'layout' : layout})

输出(差异被掩盖为df2.where(df2==df1.values)

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