【问题标题】:How to download csv file from S3 bucket into numpy array如何将 csv 文件从 S3 存储桶下载到 numpy 数组中
【发布时间】:2019-12-07 03:00:28
【问题描述】:

我在 AWS S3 存储桶中有一个 csv 文件。如何下载 CSV 并将其分配给 numpy 数组?

[使用python 3.6/boto3]

我尝试了各种形式,包括:

    s3 = boto3.resource('s3', region_name=region)
    obj = s3.Object(bucket, key)

    with io.BytesIO(obj.get()["Body"].read()) as f:
       # rewind the file
       f.seek(0)

    arr_data = numpy.load(f)

    arr_data = numpy.genfromtxt('https://BUCKETNAME.s3-eu-west-1.amazonaws.com/folder/infile.csv',dtype='str',delimiter=',')

这也行不通

基本上我正在尝试在 S3 中复制: arr_data = np.genfromtxt('path...input.csv',dtype='str',delimiter=',')

【问题讨论】:

    标签: numpy amazon-s3 aws-lambda


    【解决方案1】:

    我能够使用介于两者之间的 pandas 将 csv 转换为 numpy 数组...不确定这是否是您要寻找的。但我是这样做的:

    import pandas as pd
    import numpy as np
    
    data_location = 's3://<path>'
    data = pd.read_csv(data_location)
    data_numpy = data.value.values.reshape(-1,1)
    

    【讨论】:

    • 谢谢,但我应该更清楚一点,不使用 pandas...只使用 numpy。
    猜你喜欢
    • 2013-10-15
    • 2019-02-16
    • 2021-02-28
    • 1970-01-01
    • 2014-04-04
    • 2018-07-25
    • 2015-05-20
    • 2019-11-07
    • 2018-06-08
    相关资源
    最近更新 更多