当前位置: 代码网 > it编程>前端脚本>Python > python使用pandas从minio读取excel文件方式

python使用pandas从minio读取excel文件方式

2024年11月22日 Python 我要评论
安装依赖要使用pandas从minio读取excel文件,你需要先使用minio python sdk从minio存储桶中下载文件,然后使用pandas读取该文件。安装必要的库:pip install

安装依赖

要使用pandas从minio读取excel文件,你需要先使用minio python sdk从minio存储桶中下载文件,然后使用pandas读取该文件。

安装必要的库:

pip install pandas minio -i https://pypi.tuna.tsinghua.edu.cn/simple

python 3 的方式

import pandas as pd
from minio import minio
from io import bytesio

# minio 连接配置
# minio 连接配置
minio_client = minio(
    "localhost:9000",       # minio服务器地址
    access_key="admin",  # 访问密钥
    secret_key="admin",  # 秘钥
    secure=false                   # 如果是https连接,设为true
)

bucket_name = "test-read"   # 存储桶名称
file_path = "测试/test.xlsx"  # 文件在 minio 中的路径

def read_csv_from_minio(minio_client,bucket_name, file_path):
    """
    从 minio 中读取 csv 文件并加载到 pandas dataframe
    :param bucket_name: 存储桶名称
    :param file_path: minio 中的文件路径
    :return: pandas dataframe
    """
    try:
        # 从 minio 下载文件内容
        response = minio_client.get_object(bucket_name, file_path)
        # 使用 bytesio 包装文件内容,以便 pandas 读取
        # binary_data = response.read()  # 将数据读取为字节
        df = pd.read_excel(bytesio(response.data), sheet_name=1)
        return df
    except exception as e:
        print(f"读取文件失败,错误信息: {e}")
        return none

# 调用函数并查看数据框
df = read_csv_from_minio(bucket_name, file_path)
if df is not none:
    print(df.head())

python 2 的方式

import pandas as pd
from minio import minio
from stringio import stringio 

# minio 连接配置
# minio 连接配置
minio_client = minio(
    "localhost:9000",       # minio服务器地址
    access_key="admin",  # 访问密钥
    secret_key="admin",  # 秘钥
    secure=false                   # 如果是https连接,设为true
)

bucket_name = "test-read"   # 存储桶名称
file_path = "测试/test.xlsx"  # 文件在 minio 中的路径

def read_csv_from_minio(minio_client,bucket_name, file_path):
    """
    从 minio 中读取 csv 文件并加载到 pandas dataframe
    :param bucket_name: 存储桶名称
    :param file_path: minio 中的文件路径
    :return: pandas dataframe
    """
    try:
        # 从 minio 下载文件内容
        response = minio_client.get_object(bucket_name, file_path)
        # 使用 bytesio 包装文件内容,以便 pandas 读取
        # binary_data = response.read()  # 将数据读取为字节
        df = pd.read_excel(stringio(response.data), sheet_name=1)
        return df
    except exception as e:
        print(f"读取文件失败,错误信息: {e}")
        return none

# 调用函数并查看数据框
df = read_csv_from_minio(bucket_name, file_path)
if df is not none:
    print(df.head())

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com