如何将 Pandas bool 列以 True/False 而不是 1/0 写入 XLSX

问题:

写入 pandas XLSX 时,bool 类型列显示为 False 对应 0True 对应 1

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)

显示 bool 列为 0 和 1 值的 Pandas XLSX 导出

解决方案

导出前将列映射为具有你想要值的字符串列:

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

显示 bool 列为 True 和 False 字符串值的 Pandas XLSX 导出

完整示例代码:

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