gpt4 book ai didi

python-3.x - xlsxwriter - 基于数据框列名的条件格式

转载 作者:行者123 更新时间:2023-12-04 17:36:50 26 4
gpt4 key购买 nike

我有一个数据框如下。我想使用列名在“Data2”列上应用条件格式。我知道如何为特定列定义格式,但我不确定如何根据列名定义它,如下所示。

所以基本上我想对列名进行相同的格式化(因为列的顺序可能会改变)

df1 = pd.DataFrame({'Data1': [10, 20, 30],
'Data2': ["a", "b", "c"]})
writer = pd.ExcelWriter('pandas_filter.xlsx', engine='xlsxwriter', )
workbook = writer.book

df1.to_excel(writer, sheet_name='Sheet1', index=False)
worksheet = writer.sheets['Sheet1']
blue = workbook.add_format({'bg_color':'#000080', 'font_color': 'white'})
red = workbook.add_format({'bg_color':'#E52935', 'font_color': 'white'})

l = ['B2:B500']
for columns in l:
worksheet.conditional_format(columns, {'type': 'text',
'criteria': 'containing',
'value': 'a',
'format': blue})
worksheet.conditional_format(columns, {'type': 'text',
'criteria': 'containing',
'value': 'b',
'format': red})

writer.save()

最佳答案

使用 xlsxwriterxl_col_to_name 我们可以使用索引获取列名。

from  xlsxwriter.utility import xl_col_to_name

target_col = xl_col_to_name(df1.columns.get_loc("Data2"))
l = [f'{target_col}2:{target_col}500']

for columns in l:

使用 opnpyxlget_column_letter 我们可以使用索引获取列名。

from openpyxl.utils import get_column_letter

target_col = get_column_letter(df1.columns.get_loc("Data2") + 1) # add 1 because get_column_letter index start from 1

l = [f'{target_col}2:{target_col}500']

for columns in l:
...

关于python-3.x - xlsxwriter - 基于数据框列名的条件格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56364796/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com