python使用pandas從minio讀取excel文件方式
更新時間:2024年11月21日 09:45:00 作者:胡八一、
從MinIO讀取Excel文件并使用Pandas處理的步驟:首先使用MinIOPythonSDK下載文件,然后使用Pandas讀取,總結(jié):安裝依賴需使用Pandas和MinIOPythonSDK
安裝依賴
要使用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服務(wù)器地址
access_key="admin", # 訪問密鑰
secret_key="admin", # 秘鑰
secure=False # 如果是https連接,設(shè)為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 下載文件內(nèi)容
response = minio_client.get_object(bucket_name, file_path)
# 使用 BytesIO 包裝文件內(nèi)容,以便 pandas 讀取
# binary_data = response.read() # 將數(shù)據(jù)讀取為字節(jié)
df = pd.read_excel(BytesIO(response.data), sheet_name=1)
return df
except Exception as e:
print(f"讀取文件失敗,錯誤信息: {e}")
return None
# 調(diào)用函數(shù)并查看數(shù)據(jù)框
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服務(wù)器地址
access_key="admin", # 訪問密鑰
secret_key="admin", # 秘鑰
secure=False # 如果是https連接,設(shè)為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 下載文件內(nèi)容
response = minio_client.get_object(bucket_name, file_path)
# 使用 BytesIO 包裝文件內(nèi)容,以便 pandas 讀取
# binary_data = response.read() # 將數(shù)據(jù)讀取為字節(jié)
df = pd.read_excel(StringIO(response.data), sheet_name=1)
return df
except Exception as e:
print(f"讀取文件失敗,錯誤信息: {e}")
return None
# 調(diào)用函數(shù)并查看數(shù)據(jù)框
df = read_csv_from_minio(bucket_name, file_path)
if df is not None:
print(df.head())
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Python開發(fā)游戲自動化后臺腳本的實現(xiàn)
本文主要介紹了Python開發(fā)游戲自動化后臺腳本的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-01-01
關(guān)于Python函數(shù)對象的名稱空間和作用域
這篇文章主要介紹了關(guān)于Python函數(shù)對象的名稱空間和作用域,數(shù)據(jù)的名稱是儲存到棧區(qū),而數(shù)據(jù)的內(nèi)容是儲存到堆區(qū),當(dāng)我們要去使用數(shù)據(jù)的內(nèi)容時,我們可以通過數(shù)據(jù)的名稱來直接去表示數(shù)據(jù)的內(nèi)容,需要的朋友可以參考下2023-04-04
基于DataFrame篩選數(shù)據(jù)與loc的用法詳解
今天小編就為大家分享一篇基于DataFrame篩選數(shù)據(jù)與loc的用法詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-05-05
系統(tǒng)解析Python模擬Windows文件名排序的三種實現(xiàn)方案
在文件管理場景中,Windows資源管理器的排序規(guī)則因其符合人類自然認(rèn)知而備受青睞,本文將系統(tǒng)解析Windows排序規(guī)則并提供三種Python實現(xiàn)方案,大家可以根據(jù)需要進(jìn)行選擇2026-03-03
利用4行Python代碼監(jiān)測每一行程序的運行時間和空間消耗
這篇文章主要介紹了如何使用4行Python代碼監(jiān)測每一行程序的運行時間和空間消耗,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-04-04
django開發(fā)教程之利用緩存文件進(jìn)行頁面緩存的方法
緩存相信對各位程序員們來說都不陌生,下面這篇文章主要給大家介紹了關(guān)于django開發(fā)教程之利用緩存文件進(jìn)行頁面緩存的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友們可以參考借鑒,下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。2017-11-11

