Pandas Bool-Spalte als True/False statt 1/0 in XLSX schreiben

English Deutsch

Problem:

Beim Schreiben eines Pandas-XLSX werden bool-Spalten als 0 für False oder 1 für True angezeigt.

pandas_bool_to_string.py
df = pd.DataFrame([
    {"a": True},
    {"a": False},
    {"a": True},
    {"a": False},
    {"a": False},
])

with pd.ExcelWriter("out.xlsx", engine="xlsxwriter") as writer:
    df.to_excel(writer)

Pandas XLSX-Export mit Bool-Spalte als 0- und 1-Werte

Lösung

Die Spalte vor dem Export auf eine String-Spalte mit dem gewünschten Wert mappen:

pandas_full_example.py
df["a"] = df["a"].map({True: "True", False: "False"})

Pandas XLSX-Export mit Bool-Spalte als True- und False-String-Werte

Vollständiger Beispielcode:

pandas_full_example_usage.py
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="xlsxwriter") as writer:
    df.to_excel(writer)

Check out similar posts by category: Pandas, Python