Pandas to_excel 作为变量(没有目标文件)[重复]
Posted
技术标签:
【中文标题】Pandas to_excel 作为变量(没有目标文件)[重复]【英文标题】:Pandas to_excel as variable (without destination file) [duplicate] 【发布时间】:2018-11-12 00:47:00 【问题描述】:我最近不得不获取一个数据框并准备将其输出到 Excel 文件。但是,我不想将其保存到本地系统,而是将准备好的数据传递给一个单独的函数,该函数基于 URI 保存到云中。在搜索了许多 ExcelWriter 示例后,我找不到我要查找的内容。
目标是获取数据框,例如:
df = pd.DataFrame("a": [1, 2, 3], "b": [4, 5, 6)
并将其作为字节临时存储在变量中,例如:
processed_data = <bytes representing the excel output>
答案中提供了我提出的解决方案,希望对其他人有所帮助。也希望看到其他人的解决方案!
更新 #2 - 示例用例
在我的例子中,我创建了一个 io 模块,它允许您使用 URI 来指定不同的云目的地。例如,以 gs:// 开头的“路径”被发送到 Google 存储(使用类似 gsutils 的语法)。我首先处理数据,然后将处理后的数据传递给“保存”函数,该函数本身会过滤以确定正确的路径。
df.to_csv() 实际上在没有路径的情况下工作并自动返回一个字符串(至少在最近的版本中),所以这是我允许 to_excel() 执行相同操作的解决方案。
【问题讨论】:
【参考方案1】:与常见示例类似,但不是在 ExcelWriter 中指定文件,而是使用标准库的 BytesIO 存储在变量中 (processed_data
):
from io import BytesIO
import pandas as pd
df = pd.DataFrame(
"a": [1, 2, 3],
"b": [4, 5, 6]
)
output = BytesIO()
writer = pd.ExcelWriter(output)
df.to_excel(writer) # plus any **kwargs
writer.save()
processed_data = output.getvalue()
【讨论】:
以上是关于Pandas to_excel 作为变量(没有目标文件)[重复]的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 pandas.to_excel() 创建 Excel **Table**?
Pandas DataFrame.to_excel 错误的日期时间
将超链接添加到由 pandas 数据框 to_excel 方法创建的 excel 表