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**?

python pandas to_excel 高级玩法

Pandas DataFrame.to_excel 错误的日期时间

将超链接添加到由 pandas 数据框 to_excel 方法创建的 excel 表

Pandas之read_excel()和to_excel()函数解析

遇到问题--python--pandas--dataframe进行groupby之后导出数据to_excel内容为空