python - 将 Dataframe 保存到 csv 直接保存到 s3 Python

标签 python csv amazon-s3 dataframe boto3

我有一个要上传到新 CSV 文件的 pandas DataFrame。问题是我不想在将文件传输到 s3 之前将其保存在本地。有没有像 to_csv 这样的方法直接将数据帧写入 s3?我正在使用 boto3。
这是我目前所拥有的:

import boto3
s3 = boto3.client('s3', aws_access_key_id='key', aws_secret_access_key='secret_key')
read_file = s3.get_object(Bucket, Key)
df = pd.read_csv(read_file['Body'])

# Make alterations to DataFrame

# Then export DataFrame to CSV through direct transfer to s3

最佳答案

你可以使用:

from io import StringIO # python3; python2: BytesIO 
import boto3

bucket = 'my_bucket_name' # already created on S3
csv_buffer = StringIO()
df.to_csv(csv_buffer)
s3_resource = boto3.resource('s3')
s3_resource.Object(bucket, 'df.csv').put(Body=csv_buffer.getvalue())

关于python - 将 Dataframe 保存到 csv 直接保存到 s3 Python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38154040/

相关文章:

mysql - 如何从csv中插入记录到mysql?

python - 调用元类基函数()时出错参数 1 必须是 code 而不是 str

python - 将晦涩的文件类型输入到tensorflow中

python - 为什么dict.get(key)起作用但dict [key]不起作用?

java - AWS S3 - 仅列出根级对象

amazon-s3 - S3 湖形成治理表和数据 block 增量表之间的主要区别是什么?

php - 使用 laravel 5.1 文件系统时如何将 s3 对象字符串变成有用的东西

python - 如何根据opencv python中的掩码删除图像组件?

java - 使用带引号从java读取csv文件,但我想要不带引号

c++ - 使用基本构造函数创建派生对象