【问题标题】:How to save panda data frame as CSV in MinIO.?如何在 MinIO 中将熊猫数据框保存为 CSV。?
【发布时间】:2019-11-20 13:07:07
【问题描述】:

我是 MinIo 的新手,我正在使用 minio python 库并尝试将 panda 数据框保存为 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

非常感谢任何帮助。

【问题讨论】:

    标签: python pandas minio


    【解决方案1】:

    您必须使用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')
    

    【讨论】:

      猜你喜欢
      • 2019-05-21
      • 2017-08-02
      • 1970-01-01
      • 2019-05-07
      • 2020-12-30
      • 2021-06-01
      • 2021-06-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多