如何解决导出到Excel文件时,如何在熊猫DF中取消科学计数法?
我需要将数据框导出到具有大自然数且没有小数的excel文件,例如1234567890123456789,并且excel文件中的输出应为数字(而不是字符串)。
我找到了很多抑制科学计数法的解决方案,但是这些解决方案使用的是字符串而不是数字,或者例如,您需要使用带小数的数字(例如0.00001)(而且我只需要使用自然数,不是小数)。
有什么办法可以满足我的需求?
以防万一,这是我如何管理数据:
# Reading:
excel_file = pd.ExcelFile(filename_in)
# I read some data frames like this:
df = pd.read_excel(excel_file,sheet)
# I perform operations with the data frames
# Exporting to excel (.xlsx):
excel_writer = pd.ExcelWriter(filename_out,engine='xlsxwriter')
# I do this with all the data frames:
df.to_excel(excel_writer,sheet_name=sheet,index=False)
# After all the changes:
excel_writer.save()
解决方法
1234567890123456789之类的整数太大,无法用Excel处理。
Excel中的数字存储为IEEE 754 Doubles,其(一般)精度为15位数字。因此,如果您将1234567890123456789粘贴到Excel中,它将以文件格式1.2345678901234501E + 18进行存储,并根据格式显示为1234567890123450000。
因此,简而言之,您将无法在Excel中存储数字而不失去精度或将其存储为字符串(因此您会在其他地方看到建议)。
对于更一般的问题,这里是为输出到Excel的数据框设置数字格式的示例:
import pandas as pd
# Create a Pandas dataframe from some data.
df = pd.DataFrame({'Numbers': [0.001112,0.002224,0.003335,0.004547]})
# Create a Pandas Excel writer using XlsxWriter as the engine.
writer = pd.ExcelWriter("pandas_column_formats.xlsx",engine='xlsxwriter')
# Convert the dataframe to an XlsxWriter Excel object.
df.to_excel(writer,sheet_name='Sheet1')
# Get the xlsxwriter workbook and worksheet objects.
workbook = writer.book
worksheet = writer.sheets['Sheet1']
# Add a number format.
format1 = workbook.add_format({'num_format': '0.00000'})
# Set the column width and format.
worksheet.set_column(1,1,18,format1)
# Close the Pandas Excel writer and output the Excel file.
writer.save()
输出:
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。