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

如何让pandas透视表导出Excel仅列名加粗、值为常规字体?

解决方法

问题出在你当前的样式设置逻辑搞反了——你给索引应用了常规字体,反而让原本需要加粗的部分变成了常规。要实现仅索引(即你说的"列名")加粗,数据值用常规字体,可以按以下方式修改代码:

修正后的代码

import pandas as pd

# 创建测试数据框
df = pd.DataFrame(
    {'Name': ['ravi', 'Deepthy','ravi'],
     'Ship': ['mount everes', 'mount everes', 'Oasis of the Seas'],  
     'Tracking': ['TESTTRACK003', 'TESTTRACK008', 'TESTTRACK009'],
     'Bag': ['123', '129', '129'],
    })

# 生成透视表,将指定列设为索引
df = pd.pivot_table(df, values=["Name","Ship","Tracking","Bag"],
                  index=["Name","Ship","Tracking","Bag"])

# 定义常规字体样式函数
def normal_font(_):
    return "font-weight: normal"

# 对数据区域应用常规字体,索引保持默认加粗样式
styled_df = df.style.applymap(normal_font)

# 导出到Excel
styled_df.to_excel("abcde.xlsx", engine="openpyxl", startrow=-1)

关键说明

  • applymap是对所有数据单元格应用样式,而applymap_index是对索引单元格应用样式。你之前用反了,现在调整为给数据单元格设常规字体,索引则保留pandas默认的加粗样式。
  • 如果你的pandas版本默认索引不是加粗,还可以额外给索引设置加粗样式,代码如下:
# 定义加粗样式函数
def bold_font(_):
    return "font-weight: bold"

# 数据区域常规,索引加粗
styled_df = df.style.applymap(normal_font).applymap_index(bold_font)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 14:55:14