我正在使用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。
请提出如何比较和打印差异?
答案 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