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

如何用xlsxwriter保存Pandas DataFrame并将年龄>20的单元格设为红色

使用XlsxWriter给DataFrame中年龄大于20的单元格设置红色并保存为Excel

我来帮你搞定这个需求!用XlsxWriter实现这个效果其实很简单,下面是完整的实现代码和步骤说明:

完整代码示例

import pandas as pd

# 创建你提供的DataFrame
df = pd.DataFrame(columns=['id', 'name', 'age'])
df.loc[len(df), :] = [1, 'John', 21]
df.loc[len(df), :] = [2, 'Mary', 19]
df.loc[len(df), :] = [3, 'Ann', 27]
df.loc[len(df), :] = [4, 'Ben', 18]

# 使用XlsxWriter作为引擎创建Excel写入器
with pd.ExcelWriter('output.xlsx', engine='xlsxwriter') as writer:
    # 将DataFrame写入Excel,表头会默认放在第一行
    df.to_excel(writer, sheet_name='Sheet1', index=False)
    
    # 获取对应的工作簿和工作表对象
    workbook = writer.book
    worksheet = writer.sheets['Sheet1']
    
    # 定义字体为红色的格式
    red_format = workbook.add_format({'font_color': 'red'})
    
    # 给age列(对应Excel的C列)添加条件格式:值大于20时应用红色格式
    # 数据从第2行开始(第1行是表头),行数对应DataFrame的长度+1
    worksheet.conditional_format(
        f'C2:C{len(df)+1}',  # 条件格式应用的范围
        {'type': 'cell',
         'criteria': '>',
         'value': 20,
         'format': red_format}
    )

关键步骤说明

  • 指定XlsxWriter引擎:必须在ExcelWriter里设置engine='xlsxwriter',这样才能调用XlsxWriter的格式和条件格式功能。
  • 获取工作簿和工作表对象:只有拿到这两个对象,才能自定义单元格格式和添加条件规则。
  • 定义红色格式:用add_format方法创建一个字体为红色的格式对象,后续条件触发时会自动应用。
  • 设置条件格式范围:用动态的范围f'C2:C{len(df)+1}'可以适配任意行数的DataFrame,不用硬编码结束行号。运行后你会看到John的21和Ann的27都变成红色啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.11 08:29:29