Python 从zipfile读取sas7bdat作为数据帧

Python 从zipfile读取sas7bdat作为数据帧,python,python-3.x,pandas,sas,Python,Python 3.x,Pandas,Sas,我有一个名为myfile.zip的zip文件,其中包含一个文件mysasfile.sas7bdat,我想将其作为数据帧读取。我尝试了一些不起作用的方法,但以下是我目前的方法: import zipfile zipfile = zipfile.ZipFile('myfile.zip', 'r') sasfile = zipfile.open('mysasfile.sas7bdat') df = pd.read_sas(sasfile) 错误: ------------------------

我有一个名为
myfile.zip
的zip文件,其中包含一个文件
mysasfile.sas7bdat
,我想将其作为数据帧读取。我尝试了一些不起作用的方法,但以下是我目前的方法:

import zipfile

zipfile = zipfile.ZipFile('myfile.zip', 'r')
sasfile = zipfile.open('mysasfile.sas7bdat')

df = pd.read_sas(sasfile)
错误:

---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-82-6d55436287b5> in <module>()
      3 imgfile = archive.open('curated_dataset_preview.sas7bdat')
      4 
----> 5 df = pd.read_sas(imgfile)

/opt/python/python35/lib/python3.5/site-packages/pandas/io/sas/sasreader.py in read_sas(filepath_or_buffer, format, index, encoding, chunksize, iterator)
     38         filepath_or_buffer = _stringify_path(filepath_or_buffer)
     39         if not isinstance(filepath_or_buffer, compat.string_types):
---> 40             raise ValueError(buffer_error_msg)
     41         try:
     42             fname = filepath_or_buffer.lower()

ValueError: If this is a buffer object rather than a string name, you must specify a format string
---------------------------------------------------------------------------
ValueError回溯(最近一次调用上次)
在()
3 imgfile=archive.open('curated_dataset_preview.sas7bdat')
4.
---->5 df=局部放电读取(imgfile)
/read_sas中的opt/python/python35/lib/python3.5/site-packages/pandas/io/sas/sasreader.py(文件路径或缓冲区、格式、索引、编码、块大小、迭代器)
38文件路径\或\缓冲区=\字符串化\路径(文件路径\或\缓冲区)
39如果不存在(文件路径或缓冲区,兼容字符串类型):
--->40提升值错误(缓冲区错误消息)
41尝试:
42 fname=filepath\u或\u buffer.lower()
ValueError:如果这是缓冲区对象而不是字符串名称,则必须指定格式字符串

您缺少参数
格式

import zipfile

zipfile = zipfile.ZipFile('myfile.zip', 'r')
sasfile = zipfile.open('mysasfile.sas7bdat')

df = pd.read_sas(sasfile, format='sas7bdat')

我现在在
df=pd.read_sas(sasfile,format='sas7bdat')
上遇到一个新错误,错误是
raisevalueerror('unknown sas format')
不支持操作:seek