【发布时间】:2019-01-28 08:31:24
【问题描述】:
读取两个 excel 文件并将差异写入另一个 excel 文件。它显示了差异,但不在正确的索引处。它不是在适当的位置写“正确”。请告诉我如何修复 这是我的代码
import pandas as pd
import numpy as np
def report_diff(x):
if x[0] == x[1]:
return 'Correct'
else:
return '{} ---> {}'.format(*x)
def has_change(row):
if "--->" in row.to_string():
return "Y"
else:
return "N"
df1 = pd.read_excel(r'File1.xlsx', 'Sheet1', na_values=['NA']) df2 =
pd.read_excel(r'File2.xlsx', 'Sheet1', na_values=['NA'])
df = pd.read_excel(r'File1.xlsx') writer =
pd.ExcelWriter('Differences.xlsx')
df.to_excel(writer,'Highlighting-Error',index=False)
diff_panel = pd.Panel(dict(df1=df1,df2=df2))
diff_output = diff_panel.apply(report_diff, axis=0)
diff_output['has_change'] = diff_output.apply(has_change, axis=1)
diff_output[(diff_output.has_change ==
'Y')].to_excel(writer,sheet_name='Difference-Sheet',index=False,
columns["dbsymbol","alias"])
writer.save()
数据:
dbSymbol Alias
UQ_121 mike
UQ142 Sam
UQ143 john
UQ144 deep
UQ145 shubh
UQ_121 joe
UQ_121 name
dbSymbol Alias
UQ_121 mike
UQ142 sammy
UQ143 johnny
UQ144 deep
UQ145 shubh
UQ_121 Ann
Output:
dbSymbol Alias
UQ_121 mike
UQ142 Sam---> Sammy
UQ143 john--->Johnny
UQ144 deep
UQ145 shubh
UQ_121 Ann--->mike
UQ_121 shubh-->mike
UQ_121 name-->mike
【问题讨论】:
-
您可以创建一些示例数据并发布问题吗?我认为minimal, complete, and verifiable example.
-
够了吗? @jezrael
-
是的,没关系。但是有一个问题 - df1 和 df2 的行数总是相同?
-
是的。它具有相同的行数@jezrael
标签: excel python-3.x pandas