这个问题与答案(见下文)一起创建,旨在为我在其他地方无法解决的问题提供解决方案。对于那些已经投票的人,我请你解释原因和/或提供替代答案。谢谢。
我最近不得不采用数据帧并准备输出到Excel文件。但是,我并不想将其保存到本地系统,而是将准备好的数据传递给一个单独的函数,该函数根据URI保存到云端。在搜索了许多ExcelWriter示例后,我无法找到我要查找的内容。
目标是采用数据框,例如:
df = pd.DataFrame({"a": [1, 2, 3], "b": [4, 5, 6})
暂时将其作为字节存储在变量中,例如:
processed_data = <bytes representing the excel output>
答案中提供了我想出的解决方案,希望能帮助其他人。很想看到别人&#39;解决方案也是如此!
就我而言,我创建了一个io模块,允许您使用URI指定不同的云目标。例如,&#34;路径&#34;从gs开始://发送到Google存储(使用类似gsutils的语法)。我处理数据作为我的第一步,然后将处理后的数据传递给&#34; save&#34;函数,它本身过滤以确定正确的路径。
df.to_csv()实际上没有路径,并自动返回一个字符串(至少在最近的版本中),所以这是我的解决方案,允许to_excel()做同样的事情。
答案 0 :(得分:0)
与常见示例类似,但不是在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()