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

标签 python-3.x xlsxwriter

我有一个数据框如下。我想使用列名在“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/

相关文章:

python-3.x - Python Web3 通过用户名和密码连接 Ankr Binance 智能链 API

python - 如何将字符串数据框列转换为日期时间作为带有年和周的格式?

python-3.x - 使用 librosa.resample 后为 "wave.Error: unknown format: 3"。 librosa的输出有什么问题吗?

python - 使用 xlsxwriter 在条件格式(公式)后删除列

python-2.7 - 通过 XLSXwriter 在 Python 中将 URL 作为纯文本写入 Excel

python - 如何在不卸载的情况下使用多个版本的Python

python - 如何在列表理解中将字典值转换为小写?

python - 使用 XlsxWriter 将 pandas 图表插入 Excel 文件

python - 将数据框附加到 excel with pandas

python - 无法使用 xlsxwriter 库将数据导出到 Excel