Pandas XLSX-Export mit Hintergrundfarbe basierend auf Zellwert
English
Deutsch
Dieses Beispielskript verwendet openpyxl, um die Hintergrundfarbe einer Zelle auf rot für False-Zellen oder auf grün für True-Zellen zu setzen. Beachten, dass die booleschen Werte in "True"- oder "False"-Strings umgewandelt werden, basierend auf der Methode aus unserem vorherigen Beitrag Pandas Bool-Spalte als True/False statt 1/0 in XLSX schreiben. Weitere Details zum Setzen der Hintergrundfarbe in OpenPyXL finden sich in unserem Beitrag Zellhintergrundfarbe in OpenPyXL setzen.
pandas_color_example.py
import pandas as pd
from openpyxl.styles import PatternFill
df = pd.DataFrame([
{"a": True},
{"a": False},
{"a": True},
{"a": False},
{"a": False},
])
df["a"] = df["a"].map({True: "True", False: "False"})
with pd.ExcelWriter("out.xlsx", engine="openpyxl") as writer:
sheet_name = "Bool"
# Export DataFrame content
df.to_excel(writer, sheet_name=sheet_name)
# Set backgrund colors depending on cell values
sheet = writer.sheets[sheet_name]
for cell, in sheet[f'B2:B{len(df) + 1}']: # Skip header row, process as many rows as there are DataFrames
value = df["a"].iloc[cell.row - 2] # value is "True" or "False"
cell.fill = PatternFill("solid", start_color=("5cb800" if value == "True" else 'ff2800'))Die Ausgabe dieses Skripts sieht so aus:

If this post helped you, please consider buying me a coffee or donating via PayPal to support research & publishing of new posts on TechOverflow