我可以将StringIO对象传递给pd.to_csv()很好:
io = StringIO.StringIO()
pd.DataFrame().to_csv(io)
但是当使用excel编写器时,我遇到了很多麻烦。
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格式的熊猫数据框保存到StringIO
对象?
尽管每个编写器引擎都支持,但Pandas期望ExcelWriter构造函数的文件名路径StringIO
。也许应该将其作为熊猫中的错误/功能请求提出。
同时,这是使用Pandasxlsxwriter
引擎的解决方法示例:
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()
更新 :从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')
另请参阅XlsxWriter文档中的将数据框输出保存到字符串。
我需要上传网址到一个s3桶,我正在使用boto3。我想我有一个解决方案,这个问题:如何保存S3对象到一个文件使用boto3,但当我去下载文件,我仍然得到错误。目标是让他们下载为音频文件,而不是URL。我的代码: 我的问题是,我需要更改什么,以便将文件作为音频文件而不是URL保存在s3中?
我正在使用Python 3.2。1并且我无法导入模块。我使用可以工作,但我不能将它与的一起使用,如下所示: 我得到以下错误: 当我写时,它说
StringIO 很多时候,数据读写不一定是文件,也可以在内存中读写。 StringIO顾名思义就是在内存中读写str。 要把str写入StringIO,我们需要先创建一个StringIO,然后,像文件一样写入即可: >>> from io import StringIO >>> f = StringIO() >>> f.write('hello') 5 >>> f.write(' ') 1 >>
我正在尝试对采用文件路径并返回部分文件内容的解析函数进行单元测试。我希望能够为测试目的传递这些函数字符串数据。 我知道我能做到。reader()StringIO或文件句柄(例如csv.reader(StringIO(“my,data”)或csv)。reader(open(file)),但我看不到一种方法可以传递StringIO对象来代替文件路径,因为open(StringIO(“my,data”)
问题内容: 我正在使用Python 3.2.1,但无法导入模块。我使用 和它的作品,但我不能使用它的是这样的: 我收到以下错误: 当我写的import StringIO时候说 问题答案: 当我写导入StringIO时,它说没有这样的模块。 从Python 3.0的新功能开始: 在和模块都没有了。而是导入io 模块,分别将或用于文本和数据。 。 修复一些Python 2代码以使其在中工作的可能有用的
当我编写时,它说