使用 Pandas Excelwriter 写入 StringIO 对象?

2023-12-22

我可以将 StringIO 对象传递给 pd.to_csv() 就好:

io = StringIO.StringIO()
pd.DataFrame().to_csv(io)

但是当我使用excel writer时,我遇到了很多麻烦。

io = StringIO.StringIO()
writer = pd.ExcelWriter(io)
pd.DataFrame().to_excel(writer,"sheet name")
writer.save()   

返回一个

AttributeError: StringIO instance has no attribute 'rfind'

我正在尝试创建一个ExcelWriter不调用对象pd.ExcelWriter()但我遇到了一些麻烦。这是我到目前为止所尝试过的:

from xlsxwriter.workbook import Workbook
writer = Workbook(io)
pd.DataFrame().to_excel(writer,"sheet name")
writer.save()

但现在我得到了AttributeError: 'Workbook' object has no attribute 'write_cells'

如何将 Excel 格式的 pandas 数据框保存到StringIO object?


Pandas 需要 ExcelWriter 构造函数的文件名路径,尽管每个编写器引擎都支持StringIO。也许这应该作为 Pandas 中的错误/功能请求提出。

与此同时,这是一个使用 Pandas 的解决方法示例xlsxwriter engine:

import pandas as pd
import StringIO

io = StringIO.StringIO()

# Use a temp filename to keep pandas happy.
writer = pd.ExcelWriter('temp.xlsx', engine='xlsxwriter')

# Set the filename/file handle in the xlsxwriter.workbook object.
writer.book.filename = io

# Write the data frame to the StringIO object.
pd.DataFrame().to_excel(writer, sheet_name='Sheet1')
writer.save()
xlsx_data = io.getvalue()

Update:从 Pandas 0.17 开始,现在可以更直接地执行此操作:

# Note, Python 2 example. For Python 3 use: output = io.BytesIO().
output = StringIO.StringIO()

# Use the StringIO object as the filehandle.
writer = pd.ExcelWriter(output, engine='xlsxwriter')

如果您需要在 Pandas 之外使用输出(例如在 Django 或 Flask 中),请记住倒回 writer:output.seek(0).

也可以看看将 Dataframe 输出保存到字符串 http://xlsxwriter.readthedocs.io/working_with_pandas.html#saving-the-dataframe-output-to-a-string在 XlsxWriter 文档中。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 Pandas Excelwriter 写入 StringIO 对象? 的相关文章

随机推荐

  • MASM SEG 运营商

    假设我们正在使用 MASM 6 1 16 位 大数据模型编写汇编代码 并且我们有一个名为 MY VAR 的变量 标签 一个名为 MY SEG 的段和一个名为 MY GROUP 的段组 假设 MY VAR 放置在 MY SEG 中 并且 MY
  • 使用 Powershell 监听按键,但不要等待

    我正在尝试编写一个定期切换大写锁定键的脚本 但我也希望能够切换该脚本 因为它会导致其他功能出现一些问题 例如 alt tab 键 以及滚动任务栏中的窗口以查看预览 到目前为止我的脚本是 outer while true do echo To
  • 如何在 Blazor 中执行客户端 UI 事件

    我刚刚开始使用 Blazor 我已经看到了这个新框架的巨大潜力 不过 我想知道它将如何处理简单的事情 例如将焦点设置在输入控件上 例如 在处理单击事件后 我想将焦点设置到文本输入控件 我是否必须使用 JQuery 来完成类似的事情 或者 B
  • 使用 SQLAlchemy 正确的文件结构以及如何将数据添加到数据库

    我正在尝试构建一个简单的博客平台来学习Python和Flask 我正在使用 SQLAlchemy 连接到 Heroku 和 Flask s3 上托管的 Postgres 数据库 以提供来自 AWS 存储桶的静态文件 我主要是遵循这个 htt
  • google.maps.places 及其自动完成方法未定义

    我正在加载谷歌地图 API https developers google com maps documentation javascript jQuery http jquery com 和这个地理完整 http ubilabs gith
  • 在 Spring 框架下:警告:警告找不到记录器的附加程序(org.springframework.web.context.ContextLoader)

    我花了一整天的时间试图解决 web 应用程序中使用 log4j 时遇到的日志记录问题 无论我做什么 我都无法摆脱以下问题 log4j WARN No appenders could be found for logger org sprin
  • 如何在 python 中正确打印 unicode 字符列表?

    我正在尝试在 python 字符串中搜索表情符号 所以我有 例如 em test U0001f680 print em test test This is a test string if any x in test for x in em
  • 将文本识别为简体中文与繁体中文

    给定一段已知为中文且以 UTF 8 编码的文本块 有没有办法确定它是简体还是繁体 我不知道这是否有效 但我会尝试使用 iconv 来查看它是否能在字符集之间正确转换 并将相同转换的结果与 TRANSLIT 和 IGNORE 进行比较 如果两
  • Opera Unite 和 Node.js 有什么区别?

    两者似乎都允许完全使用 JavaScript 编写应用程序 两者都允许服务器端 JS 和客户端 JS 那么 从技术和编程的角度来看 两者有什么区别呢 Opera Unite 是一种协作技术 它使用 Opera 桌面浏览器内的紧凑型服务器来共
  • 查询矩形集合以查找输入矩形的重叠

    在多维空间中 我有一组矩形 所有矩形都与网格对齐 我宽松地使用 矩形 这个词 在三维空间中 它们将是矩形棱柱 我想查询此集合中与输入矩形重叠的所有矩形 保存矩形集合的最佳数据结构是什么 我会不时地向集合中添加矩形和从集合中删除矩形 但这些操
  • 监听键盘事件而不捕获它们?

    我正在编写一个命令行应用程序 它侦听 X Windows 中的 Control 键释放事件 并在检测到这些事件时向另一个进程发出警报 作为 GNU Linux 的新手 我宁愿避免摸索 GCC 因此我正在寻找基于脚本的解决方案 由于我对 Py
  • 是否可以在运行时更改 AWS Lambda 的日志级别?

    我在 AWS 上运行 lambda 并使用 slf4j 进行日志记录 项目要求的一部分是可以使用环境变量在运行时设置日志级别 但我不确定这是否可能 我使用以下代码 但将 UI 中的环境变量 LOG LEVEL 更改为 DEBUG 对添加到
  • DBMS_XPLAN.DISPLAY_CURSOR 与解释计划(如果不使用 Gather_plan_statistics 提示)

    只是要求澄清两者之间的区别 据我所知 解释计划为您提供了理论的执行计划 而 DBMS XPLAN DISPLAY CURSOR 为您提供actual带有语句执行统计信息的执行计划 EXPLAIN PLAN 将此数据存储在 PLAN TABL
  • Blazor onclick 事件从循环传入计数器

    我目前正在通过 Blazor 中的本地解决方案实现表分页 但遇到了一些困难 麻烦的代码如下 用于渲染网格下方的分页按钮 for int i 0 i lt vm TotalPages i
  • easy_install 安装了各种版本的 python、mac osx

    我在 mac OSX 10 6 机器上有各种版本的 python 其中一些安装了 macports gt python select l Available versions current none python24 python26 p
  • 如何防止命令行参数由 R 解释而不是仅由我的脚本解释?

    我正在使用docopt https github com docopt docopt RR 的实现 我的脚本有一个命令行选项 其缩写形式为 g 当我运行我的脚本时 似乎这个参数首先由 R 解释 然后由我的脚本解释 因此 我因为没有为 GUI
  • SoapClient 尝试获取架构文件时出现 401 身份验证错误

    我的应用程序通常连接到第三方服务器以通过 SOAP WSDL 获取数据 this gt soap client new SoapClient https the domain 443 path wsdl array trace gt 1 l
  • 如何优化 EF Code First 查询?

    已更新 请参阅底部的更新 我使用 EF 代码优先 并且总体上对此感到满意 然而 一个简单 且常见 的操作导致 EF 生成极其复杂的 SQL 这降低了我的应用程序的速度 我只是使用 整数 ID 列表来获取一组实体 但因为我需要大量子实体的详细
  • 在 C++ 中前向声明静态 C 结构实例

    我正在编写一个代码生成器 实际上是一个数据生成器 它将生成这种形式的数据结构 显然实际的数据结构要复杂得多 typedef struct Foo int a struct Foo foo Foo extern Foo f1 extern F
  • 使用 Pandas Excelwriter 写入 StringIO 对象?

    我可以将 StringIO 对象传递给 pd to csv 就好 io StringIO StringIO pd DataFrame to csv io 但是当我使用excel writer时 我遇到了很多麻烦 io StringIO St