如何在 MinIO 中将熊猫数据框保存为 CSV 文件?
How to save panda data frame as CSV in MinIO.?
我是 MinIo 的新手,我正在使用 minio python 库并尝试将熊猫数据框保存为 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
而不是 StringIO
。 BytesIO
允许您将字节数组包装在一个流中,您可以将其提供给 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')
我是 MinIo 的新手,我正在使用 minio python 库并尝试将熊猫数据框保存为 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
而不是 StringIO
。 BytesIO
允许您将字节数组包装在一个流中,您可以将其提供给 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')