我正在使用 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())
我已经尝试过这个,它对我有用:
with open('//Path', encoding='utf-8') as report_file:
report_file.write(compare.report())
这对我来说也工作得很好完整代码
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())
请务必添加“w”来书写。
'''蟒蛇 with open(r'将写入数据的文件路径','w',encoding='utf-8')作为report_file: report_file.write(比较.report()) '''
如果你只是使用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方式。