You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Pandas 2.1.4中df.style.format()为何无法应用于Excel数字格式化?

问题原因与解决方案

你的问题出在Pandas Styler的format()方法仅针对HTML渲染生效,导出Excel时,xlsxwriter引擎无法识别Styler生成的文本格式规则,所以千位分隔符没生效。

直接用xlsxwriter的原生格式对象配置单元格格式即可解决,修改后的代码如下:

import pandas as pd

df = pd.DataFrame({
    'Name': ['John', 'Isak'],
    'Value': [100000, 3000000000]
})

with pd.ExcelWriter('test.xlsx', engine='xlsxwriter') as writer:
    # 先将DataFrame写入Excel
    df.to_excel(writer, sheet_name='Sheet1', index=False)
    # 获取工作簿和工作表对象
    workbook = writer.book
    worksheet = writer.sheets['Sheet1']
    
    # 定义千位分隔符的Excel数字格式
    thousand_format = workbook.add_format({'num_format': '#,##0'})
    
    # 把格式应用到Value列(Excel列索引从0开始,Value对应第1列即B列)
    # 从第2行开始应用(第1行是表头)
    worksheet.set_column('B:B', None, thousand_format)

补充说明

  • Excel格式代码#,##0表示显示千位分隔符且无小数,若需要保留小数可改用#,##0.00这类格式。
  • 若坚持想用Styler方式,需将Styler输出为HTML后再转Excel,但步骤繁琐且效率远不如直接用xlsxwriter原生格式。

内容的提问来源于stack exchange,提问作者na_sacc

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.30 15:22:02