猿问

如何使用datacompy将比较报告的输出发送到excel

我正在使用 datacompy 比较 2 个 excel 文件中的数据。我想将输出发送到一个 excel 文件(也可能是一封电子邮件,但这不是优先事项)。我怎样才能做到这一点 ?

我尝试存储 compare.report 的值并将其传递给 excel,尽管它不起作用

compare = datacompy.Compare(df1,df2,join_columns=['COL_A','COL_B']) compare_rep = compare.report()

使用 pd.ExcelWriter('Comparison_report.xlsx') 作为作者: compare_rep.to_excel(writer,sheet_name = 'DM',index=False)


米琪卡哇伊
浏览 322回答 2
2回答

慕森卡

您正在尝试将字符串写入 excel 文件(使用 pd.DataFrame.to_excel() 是不可能的),因为 compare.report() 不会生成数据框。print(type(compare_rep))<class 'str'>

吃鸡游戏

如果您使用的是 OpenPyxl,您可以将字符串逐行拆分为列表并将其写入 excel。同样,如果您想通过电子邮件发送报告,您可以使用 SMTPLIBimport smtplibserver = smtplib.SMTP('smtp.gmail.com', 587)#Next, log in to the serverserver.login("youremailusername", "yourpassword")#Send the mail#compare.report() is the datacompy report stringserver.sendmail("you@gmail.com", "target@example.com", compare.report())
随时随地看视频慕课网APP

相关分类

Python
我要回答