【问题标题】:Pandas write excel problem with boolean values熊猫用布尔值编写excel问题
【发布时间】:2018-11-27 13:53:58
【问题描述】:

我有一个数据框,其中一列的字符串值为“True”或“False” 但是,使用 pd.to_excel 打开带有 excel 的文件,此列不同于常规的 exce“TRUE”(逻辑),将 Pandas 的“True”与 Excel“True”返回 FALSE。当我导出到 CSV 时问题得到解决,但所有其他格式都消失了。

有人知道如何解决这个问题吗?

import pandas as pd
d = {'col1': [1, 2], 'col2': [3, 4], 'col3': ['True','False']}
df = pd.DataFrame(data=d)
writer = pd.ExcelWriter(r'H:\ExcelTest2.xlsx', engine = 'xlsxwriter')
df.to_excel(writer, index=False, sheet_name='Sheet1')
writer.save()

请执行我的代码。打开 xlsx 文件并在第 4 列中写入常规“True”,然后将 Column3(来自 pandas)与您刚刚编写的 True 进行比较。这将是错误的

我的问题是:如何将数据从 pandas 导出到 excel 并保持“True”的格式与 excel 过去的格式相同。

【问题讨论】:

  • 尝试用代码分享一个例子。

标签: python excel pandas


【解决方案1】:

您可以在写入 Excel 之前转换字符串,如下例所示: 将熊猫导入为 pd 将 numpy 导入为 np

df = pd.DataFrame({'A': ['True', 'False', 'True']})
df['A'].dtype
#dtype('O')

df['A'] = df['A'] == 'True'
df['A'].dtype
#dtype('bool')

【讨论】:

  • 请执行我的代码。打开 xlsx 文件并在第 4 列中写入常规“True”,然后将 Column3(来自 pandas)与您刚刚编写的 True 进行比较。这将是错误的
  • 嗯,您的回答让我知道了模式代码中可能出现的问题。在某些时候,我的数据是 str,所以我必须在导出到 excel 之前使用 .astype(bool),这使得“True”等于 excel“True”
  • @Drac0 我打错了True,它应该是'True'。已编辑。
猜你喜欢
  • 1970-01-01
  • 2016-04-01
  • 1970-01-01
  • 2020-07-05
  • 1970-01-01
  • 1970-01-01
  • 2016-01-15
  • 2021-05-17
  • 1970-01-01
相关资源
最近更新 更多