猿问

如何在 Watson Studio 中使用 pandas read_csv 读取压缩的

要在我的本地 Jupyter 笔记本中读取带有 Pandas 的 zip 压缩 csv 文件,我执行:


import pandas as pd

pd.read_csv('csv_file.zip')

但是,在 Watson Studio 中,read_csv()当我将文件名替换为云对象存储流对象时会引发异常。


这是我在 Watson Studio 中笔记本的第一个单元格:


import types

from ibm_botocore.client import Config

import ibm_boto3


def __iter__(self): return 0


client = ibm_boto3.client(service_name='s3', ibm_api_key_id='...',

    ibm_auth_endpoint="...", config=Config(signature_version='oauth'),

    endpoint_url='...')


body = client.get_object(Bucket='...', Key='csv_file.zip')['Body']

if not hasattr(body, "__iter__"):

    body.__iter__ = types.MethodType( __iter__, body )

现在,当我尝试:


import pandas as pd

df = pd.read_csv(body)

我得到:


'utf-8' codec can't decode byte 0xbb in position 0: invalid start byte

如果我指定compression='zip':


import pandas as pd

df = pd.read_csv(body, compression='zip')

消息是:


'StreamingBody' object has no attribute 'seek'

read_csv()在 Watson Studio 中是否有直接压缩文件的方法,而无需显式编写解包代码?


(该pd.__version__是0.21.0在两种环境中。)


BIG阳
浏览 145回答 1
1回答
随时随地看视频慕课网APP

相关分类

Python
我要回答