使用 AWS S3 存储桶将多个对象连接到单个 Pandas 数据帧中

TH14

我正在尝试使用我从上一个问题Read multiple csv files from S3 bucket with boto3 中找到的函数但我不断收到 ValueError: DataFrame 构造函数未正确调用!

这是下面的代码:

s3 = boto3.resource('s3',aws_access_key_id=ACCESS_KEY, aws_secret_access_key=SECRET_KEY)
bucket = s3.Bucket('test_bucket')
prefix_objs = bucket.objects.filter(Prefix=prefix)
prefix_df = []
for obj in prefix_objs:
    key = obj.key
    body = obj.get()['Body'].read()
    df = pd.DataFrame(body)

当我打印 body 时,我得到的只是一串以 ab' 开头的字符串

紫蟒

我使用它,如果您的所有文件都在 1 个前缀路径中,它就可以很好地工作。基本上,您创建 s3 客户端,然后遍历前缀路径中的每个对象,然后将每个文件附加到一个空列表中,以便通过 Pandas 进行连接。

import boto3
import pandas as pd

s3 = boto3.client("s3",\
                  region_name=region_name,\
                  aws_access_key_id=aws_access_key_id,\
                  aws_secret_access_key=aws_secret_access_key)

response = s3.list_objects(Bucket="my-bucket",\
                           Prefix="datasets/")

df_list = []

for file in response["Contents"]:
    obj = s3.get_object(Bucket="my-bucket", Key=file["Key"])
    obj_df = pd.read_csv(obj["Body"])
    df_list.append(obj_df)

df = pd.concat(df_list)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何使用Java列出存储桶中的所有AWS S3对象

AWS S3:如何使用bash检查存储桶中是否存在文件

如何使用AWS CLI删除S3存储桶中的多个文件

如何使用CLI在AWS S3中删除版本存储桶?

无法使用ruby aws-sdk v2在S3中创建存储桶

如何使用AWS Lambda将S3对象备份到另一个帐户的存储桶中?

使用KMS将AWS RDS Aurora选择到S3加密存储桶中

如何使用Node.js在AWS中创建新的S3存储桶?

列出AWS S3存储桶中的对象(使用无服务器部署)

如何使用Cloudformation从S3存储桶中的代码创建AWS Codecommit存储库

使用Amazon Connect将语音消息保存在AWS S3存储桶中

如何使用spring-integration-aws获取S3存储桶中当前日期的对象计数?

AWS Lambda:使用Python从s3存储桶读取csv文件尺寸,而无需使用Pandas或CSV包

如何使用承担角色将另一个AWS账户中的S3对象放入您自己的账户S3存储桶中?

从SageMaker将数据帧上传到AWS S3存储桶

使用AWS Lambda将文件从一个s3存储桶移动到AWS中的另一个存储桶

无法使用Boto连接AWS S3存储桶

如何使用C#压缩AWS S3存储桶中的目录

如何删除aws s3存储桶中具有相同键的多个对象

AWS S3 存储桶中对象更新的问题

Heroku 如何使用 AWS S3 凭证访问我的存储桶中的图像?

在单个 AWS S3 存储桶中托管多个 Angular 7 应用程序

存储在 s3 中的 aws 日志使用什么格式

如果使用 aws-sdk 已经存在具有相同密钥的对象,则覆盖 S3 存储桶中的对象

无法使用 python boto3 模块连接到 nexrad aws s3 存储桶

在 Clojurescript 中,如何使用 AWS javascript SDK 列出 S3 存储桶?

使用 aws lambda 节点 js 获取存储在 s3 存储桶中的视频的视频元数据

AWS:使用 lambda 函数读取 Amazon S3 存储桶中的所有文件

什么相当于使用 s3fs 在 aws s3 中连接到谷歌云存储(gcs)?