发散颜色DataBar(条件格式)-openpyxl pandas

sop*_*les 5 python conditional-formatting pandas openpyxl pandas.excelwriter

如何使用pandas和在数字数据列上添加条件格式规则openpyxl,该规则将为负值和正值使用不同的颜色?最终,与在 Excel 中对列应用数据条规则时得到的结果完全相同。

预期输出

在此输入图像描述


我相当成功地将条件格式应用于仅包含正值的列,使用:

from openpyxl.formatting.rule import DataBar

rule_pos = DataBarRule(start_type="percentile",start_value=10, end_type="percentile",
        end_value="90", color="FF638EC6", showValue="None", minLength=None,maxLength=None)

wb["sheet_name"].conditional_formatting.add("K44:K48", rule_pos)
Run Code Online (Sandbox Code Playgroud)

成功返回:

在此输入图像描述


这可以通过利用、 和参数Excelwriter来实现。conditional_format'min_color': 'red''max_color':'green'

我尝试了几种不同的方法,例如分别对绿色/红色数据条应用否定和肯定规则,或者调整 的openpyxl条件格式的参数。我得到的结果是相同的颜色,但负值的条形较小。事实证明这比我预期的要棘手。