Python的Datacompy库:如何将报告字符串保存到CSV文件中?

3

我正在使用Datacompy比较两个数据帧,但是如何将最终结果保存为Excel工作表或CSV文件?我得到了一个字符串作为输出,但是如何将其保存为CSV。

我在使用Datacompy比较两个数据帧,现在想将最终结果保存为Excel或CSV文件。目前我已经得到了一个字符串的输出结果,但不知道如何将其保存为CSV文件。
import pandas as pd
df1_1=pd.read_csv('G1-1.csv')
df1_2=pd.read_csv('G1-2.csv')

import datacompy
compare = datacompy.Compare(
    df1_1,
    df1_2,
    join_columns='SAMPLED CONTENT (URL to content)', 
)

print(compare.report())

你能分享一下输出的样子吗? - AMC
DataComPy比较

DataFrame摘要

DataFrame 列数 行数 0 df1 26 41 1 df2 27 41

列摘要

返回一个字符串,报告格式相当好。
请参见以下内容:
共同的列数:26 df1中但不在df2中的列数:0 df2中但不在df1中的列数:1
- Alaa Alsaiery
你曾经让这个工作成功了吗?我尝试使用 comparison_report = compare.report() ,并且打开一个文件并将其写入,但是comparison_report和文件都是空的,并且它仍然在屏幕上显示报告的输出。 - Tim Edwards
3个回答

0

这对我来说很好用,完整的代码

 compare = datacompy.Compare(
    Oracle_DF1,PostgreSQL_DF2, 
    join_columns=['c_transaction_cd','c_anti_social_force_req_id'],  #You can also specify a list of columns
    abs_tol=0, 
    rel_tol=0,
    df1_name = 'Oracle Source', 
    df2_name = 'PostgrSQL Reference'   
    )
    compare.matches(ignore_extra_columns=False)
    Report = compare.report()    csvFileToWrite=r'D://Postgres_Problem_15Feb21//Oracle_PostgreSQLDataFiles//Sample//summary.csv'
    with open(csvFileToWrite,mode='r+',encoding='utf-8') as report_file:
        report_file.write(compare.report())

0

我尝试过这个方法,对我来说是有效的:

with open('//Path', encoding='utf-8') as report_file:
    report_file.write(compare.report())

0
如果你只是使用pandas,你可以尝试pandas自己的方式将数据写入csv文件:
> df = pd.DataFrame([['yy','rr'],['tt', 'rr'],['cc', 'rr']], index=range(3),
                  columns=['a', 'b'])

> df.to_csv('compare.csv')

我之前没有使用过datacompy,但我建议你可以将你的结果转换成一个dataframe,然后使用to_csv方法。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接