gpt4 book ai didi

python - Pandas.to_excel 将我的十进制值四舍五入到小数点后两位,但在转换为_csv 时给出准确的结果

转载 作者:行者123 更新时间:2023-12-04 20:08:54 27 4
gpt4 key购买 nike

我有一个包含大量记录的数据框。

当此数据帧转换为 CSV 时,它会给出小数点后所有数字的准确结果。然而,相同的数据框在转换为 excel (xlsx) 时,小数值会在 Excel 工作表中四舍五入(大多数小数点后两位)。

例如:

CSV 输出:3363.6499999999999

Excel 输出:3363.65

我正在 output=BytesIO() 中写入输出,以使用“put(output.getvalue())”将 Excel 保存在 S3 中

output= BytesIO()
writer=pd.ExcelWriter(output)
df.to_excel(writer, index= False)
writer.save()

我不想四舍五入。我希望我的实际值(value)没有任何变化。如何在不四舍五入的情况下转换为 to_excel?

最佳答案

试试这个例子:

df = pd.DataFrame({
'date':['1/15/2016','2/1/2016','2/15/2016','3/15/2016'],
'numA':[1000,2000,3000,4000.3],
'numB':[10000,20000.2,30000,40000]
})

writer = pd.ExcelWriter('c:/.../pandas_excel_test.xlsx', engine = 'xlsxwriter')
df.to_excel(writer, index=False, sheet_name='Sheet1')
workbook = writer.book
worksheet = writer.sheets['Sheet1']
format1 = workbook.add_format({'num_format': '0.00'})
worksheet.set_column('C:C', None, format1) # Adds formatting to column C
writer.save()

您可以在 .add_format({'num_format': '0.00'}) 中将格式 0.00 更改为您想要的格式,例如 0.0000 四位小数。请注意,这仅适用于 C 列。

如果要更改所有列的格式,修改worksheet.set_column('C:C', None, format1),例如

worksheet.set_column(0, 3, None, format1) 

其中 0 是第一列,3 是最后一列。

在此处检查更多格式:https://xlsxwriter.readthedocs.io/worksheet.html

关于python - Pandas.to_excel 将我的十进制值四舍五入到小数点后两位,但在转换为_csv 时给出准确的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67530860/

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