gpt4 book ai didi

python - XLSXWriter Pandas 导出截断或舍入数字

转载 作者:行者123 更新时间:2023-12-04 13:43:08 24 4
gpt4 key购买 nike

我在使用 xlsxwriter 导出数据框时遇到问题。具有很长数据库键整数的列被截断并以科学计数法显示。如何设置 pandas 和 xlsxwriter 以将整个数字通过数据帧传递给 xlsxwriter 而不是给我一个截断的结果?

我遇到问题的列是 newdf['Record ID'],所以请帮我调整下面的代码,以便整个数字通过。

我尝试将其转换为字符串,但它仍然在 excel 中显示为科学记数法中的截断数字。我认为科学记数法很好,但我无法承受截断。

    output = io.BytesIO()
writer = pd.ExcelWriter(output, engine='xlsxwriter')
newdf.to_excel(writer, sheet_name='NewDF Sheet')
writer.save()
resp = make_response(output.getvalue())
resp.headers["Content-Disposition"] = "attachment; filename=output.xlsx"
resp.headers["Content-Type"] = "application/vnd.ms-excel"

上面的代码在 flask 应用程序中运行,并将数据帧导出到 xlsx 文件。数据框包含列 newdf['Record ID'] 应该导出整个数字,但它只导出前几位数字,结尾显示为零。这也出现在科学记数法中。

更新:我通过将 excel writer 中的选项设置为 options={'strings_to_numbers': False} 解决了我的问题,如下所示。该列实际上已经是 Pandas 中的一个字符串,但除非您设置此选项,否则仍然由 excelwriter 编写为数字。我在我的答案中包含了字符串转换以获得完整的解决方案。
writer = pd.ExcelWriter(output, engine='xlsxwriter', options={'strings_to_numbers': False})
newdf['Record ID'] = newdf['Record ID'].astype('str')
newdf.to_excel(writer, sheet_name='NewDF Sheet', index=False)
writer.save()

最佳答案

我通过将 excel writer 中的选项设置为 options={'strings_to_numbers': False} 解决了我的问题,如下所示。该列实际上已经是 Pandas 中的一个字符串,但除非您设置此选项,否则仍然由 excelwriter 编写为数字。我在我的答案中包含了字符串转换以获得完整的解决方案。

writer = pd.ExcelWriter(output, engine='xlsxwriter', options={'strings_to_numbers': False})
newdf['Record ID'] = newdf['Record ID'].astype('str')
newdf.to_excel(writer, sheet_name='NewDF Sheet', index=False)
writer.save()

关于python - XLSXWriter Pandas 导出截断或舍入数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53990233/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com