在使用 Python 批量處理 Excel 時經常需要批量讀取數據,常見的方式是結合glob模塊,可以實現將當前文件夾下的所有csv批量讀取,并且合并到一個大的DataFrame中
df_list = [] for file in glob.glob("*.csv"): df_list.append(pd.read_excel(file)) df = pd.concat(df_list)
但是這樣要求讀取的每一個csv文件格式、列名都是一樣的。
如果想要將每一個csv獨立的進行讀取,可以使用os模塊來循環遍歷當前文件夾中的 CSV 文件,然后使用 Pandas 的read_csv函數來讀取每個文件
import os import pandas as pd df_list = [] for file in os.listdir(): if file.endswith(".csv"): df_list.append(pd.read_csv(file))
現在,df_list中的每個元素都是一個DataFrame,但是這樣依舊不夠完美,調用的時候依舊需要手動從列表中提取。
那如何自動讀取當前文件夾下全部CSV數據,并將每個CSV賦給不同的變量
可以使用Python中的globals()函數,它返回一個字典,其中包含當前程序的所有全局變量,例如我們可以使用如下語法來為字典中的某個鍵賦值:
globals()[key] = value
所以,使用下面的代碼可以實現自動讀取當前文件夾下全部CSV數據,并將每個CSV賦給不同的變量
df_list = [] for i, file in enumerate(os.listdir()): if file.endswith(".csv"): df_list.append(pd.read_csv(file)) for i, df in enumerate(df_list): globals()[f'df{i+1}'] = df
當然,類似的方法還可以應用于讀取Excel的不同sheet,例如假設data.xlsx有10個sheet
df_list = [pd.read_excel("data.xlsx", sheet_name=i) for i in range(10)] for i, df in enumerate(df_list): globals()[f"df{i+1}"] = df
如果你不清楚數據有多少Sheet,也可以使用sheet_name=None,然后根據返回的字典自動讀取
df_list = pd.read_excel("data.xlsx", sheet_name=None) for i, (name, df) in enumerate(df_list.items()): globals()[f"df_{name}"] = df
審核編輯:劉清
-
python
+關注
關注
56文章
4807瀏覽量
85037 -
csv
+關注
關注
0文章
39瀏覽量
5860
原文標題:如何用 Python 批量循環讀取 Excel ?
文章出處:【微信號:DBDevs,微信公眾號:數據分析與開發】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
LabVIEW讀取Excel數據時間轉換設計
![LabVIEW<b class='flag-5'>讀取</b><b class='flag-5'>Excel</b>數據時間轉換設計](https://file.elecfans.com/web2/M00/26/D1/pYYBAGG_NuyAROZxAACSxMxU3o0791.png)
python導出excel格式的oracle數據報表講解
![<b class='flag-5'>python</b>導出<b class='flag-5'>excel</b>格式的oracle數據報表講解](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
Excel新功能要逆天 微軟把Python加入Excel
微軟正在將Python引入Excel
![微軟正在將<b class='flag-5'>Python</b>引入<b class='flag-5'>Excel</b>](https://file1.elecfans.com/web2/M00/96/61/wKgZomTnHreAQKkXAABB5PYMhpk960.png)
如何使用Python和pandas庫讀取、寫入文件
如何使用Python讀取寫入Word文件
Python中Excel轉PDF的實現步驟
![<b class='flag-5'>Python</b>中<b class='flag-5'>Excel</b>轉PDF的實現步驟](https://file1.elecfans.com/web2/M00/B1/40/wKgZomVbBOyADL1tAAA2TmzyDdE564.png)
評論