python - 如何在 MinIO 中将 Pandas 数据框保存为 CSV 文件?

标签 python pandas minio

我是 MinIo 的新手,我正在使用 minio python 库并尝试将 Pandas 数据框保存为 CSV。 根据那里的文档,我正在使用 put_object将数据插入远程云位置。下面是我的代码。

from minio import Minio
from minio.error import ResponseError
from io import StringIO, BytesIO
import pandas as pd
import os
minioClient = Minio('mydomain.com',
              access_key='my_access_key',
              secret_key='scret_key',
              secure=False)
df = panda data frame
csv_buffer = StringIO()
df.to_csv(csv_buffer)
minioClient.put_object('mu_bucket',
                       'mypath/test.csv',
                        data = csv_buffer.getvalue(),
                        length = csv_buffer.tell(),
                        content_type='application/csv')

在文档中,所有示例都在保存物理文件,但我需要从数据帧中保存。 这就是为什么我使用 StringIO 创建字符串缓冲区。但出现以下错误。

AttributeError: 'str' object has no attribute 'read

非常感谢任何帮助谢谢。

最佳答案

您必须使用 BytesIO 而不是 StringIOBytesIO 允许您将字节数组包装在一个流中,您可以将其提供给 minio。


from io import BytesIO

import pandas as pd
from minio import Minio

minioClient = Minio('mydomain.com',
              access_key='my_access_key',
              secret_key='secret_key',
              secure=False)

df = pd.DataFrame()
csv_bytes = df.to_csv().encode('utf-8')
csv_buffer = BytesIO(csv_bytes)

minioClient.put_object('mu_bucket',
                       'mypath/test.csv',
                        data=csv_buffer,
                        length=len(csv_bytes),
                        content_type='application/csv')

关于python - 如何在 MinIO 中将 Pandas 数据框保存为 CSV 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58955092/

相关文章:

python - Keras 使用 tf.data.Dataset 预测循环内存泄漏,但不使用 numpy 数组

python - 不正确,Python 类似于 R

docker - 用于通过 gitlab-ci 将 minio docker 容器作为服务运行以进行测试的配置

python - Sympy 解决返回奇怪的字典,当它不应该返回任何

python - 从金字塔导入 auto_arima 时出错

python - 将 intIndex 更改为 timedeltaIndex

python - Pandas 使用 DataFrame.query 根据字符串长度过滤字符串数据

amazon-s3 - Kuzzle S3插件/Minio无法连接

object-storage - MinioClient线程安全

python - WIN32 程序可以使用 MYSQL 通过 Django 身份验证系统进行身份验证吗?