【问题标题】:File corruption while writing using Pandas使用 Pandas 写入时文件损坏
【发布时间】:2019-06-03 06:51:25
【问题描述】:

我正在从一个完全有效的xlsx 文件中读取数据,并在 Python 3.5 中使用 Pandas 对其进行处理。最后,我正在使用以下方法将最终数据框写入 Excel 文件:

writer = pd.ExcelWriter(os.path.join(DATA_DIR, 'Data.xlsx'), 
engine='xlsxwriter', options={'strings_to_urls': False})
manual_labelling_data.to_excel(writer, 'Sheet_A', index=False)
writer.save()

在尝试打开Data.xlsx 时,我收到错误消息:我们发现“Data.xlsx”中的某些内容存在问题...继续将文件加载到 Excel 中并显示信息:已删除记录:来自 /xl/worksheets/sheet1.xml 部分的公式

我无法找出问题所在。

【问题讨论】:

  • 当您尝试使用 Pandas 打开 Excel 文件时会发生什么?如果将文件写入 CSV,然后尝试打开 CSV,会发生什么情况?
  • 写入 CSV 没有问题。使用 Pandas 读取写入的 xlsx 文件也没有任何问题。
  • 您实际上是在从数据框中编写公式吗?如果是这样,那么您应该尝试隔离造成问题的公式。如果不是,并且公式被无意解释,那么您可以通过将 strings_to_formulas 构造函数选项设置为 False 来避免这种情况。
  • @jmcnamara,这有帮助。万分感谢。另外,能否请您提供包含所有可用选项列表的链接。
  • @Aroonalok 可用选项列在XlsxWriter constructor 文档下。

标签: excel python-3.x pandas


【解决方案1】:

非常感谢@jmcnamara 在评论中的帮助。问题是数据中的某些字符串被错误地解释为公式。更正后的代码是:

options = {}
options['strings_to_formulas'] = False
options['strings_to_urls'] = False
writer = pd.ExcelWriter(os.path.join(DATA_DIR, 'Data.xlsx'),engine='xlsxwriter',options=options)
manual_labelling_data.to_excel(writer, 'Sheet_A', index=False)
writer.save()

【讨论】:

  • 非常方便,我有一列包含 base64 编码字符串,一行以 = 开头,禁用 string_to_formulas 节省了我的一天!谢谢分享。
猜你喜欢
  • 1970-01-01
  • 2019-01-09
  • 1970-01-01
  • 2019-10-17
  • 1970-01-01
  • 2021-09-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多