要在本地Jupyter笔记本中读取包含熊猫的压缩csv文件,请执行以下操作:
import pandas as pd
pd.read_csv('csv_file.zip')
然而,在华生工作室,
read_csv()
将文件名替换为云对象存储流对象时引发异常。
这是我在华生工作室的第一个笔记本手机:
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 Cysv()
华生工作室的压缩文件,没有显式地写解包代码?
(The
pd.__version__
是
0.21.0
在两种环境中。)