【问题标题】:Pandas: to_excel() float_format熊猫:to_excel() float_format
【发布时间】:2017-11-09 10:04:51
【问题描述】:

我正在尝试让 float_format 参数与 pandas 的 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')

print df.dtypes

df.to_excel(writer, 
        index = False,
        float_format = '%.2f',
    )

但是 Excel 文件看起来像这样:

我确认 dtypes 为:

date     object
numA    float64
numB    float64
dtype: object

有谁知道如何正确格式化 to_excel() 中的浮点数?

【问题讨论】:

    标签: excel pandas formatting


    【解决方案1】:

    我相信 Excel 格式会改变浮点数的显示方式。我尝试了to_csv 方法和float_format 工作。对于 excel,告诉 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()
    

    结果:

    更多信息:http://xlsxwriter.readthedocs.io/example_pandas_column_formats.html

    【讨论】:

    • 你是对的。我一直在寻找和寻找,这似乎是唯一真正的答案。这很好,只需要改变我的方法。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-04-01
    • 2013-10-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多