如何用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
相关产品推荐
相关产品推荐

