利用Python批量循環(huán)讀取Excel的技巧分享
在使用 Python 批量處理 Excel 時經(jīng)常需要批量讀取數(shù)據(jù),常見的方式是結(jié)合glob模塊,可以實現(xiàn)將當前文件夾下的所有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 模塊來循環(huán)遍歷當前文件夾中的 CSV 文件,然后使用 Pandas 的 read_csv 函數(shù)來讀取每個文件
import os
import pandas as pd
df_list = []
for file in os.listdir():
if file.endswith(".csv"):
df_list.append(pd.read_csv(file))現(xiàn)在,df_list 中的每個元素都是一個 DataFrame,但是這樣依舊不夠完美,調(diào)用的時候依舊需要手動從列表中提取。
那如何自動讀取當前文件夾下全部CSV數(shù)據(jù),并將每個CSV賦給不同的變量
可以使用Python中的globals() 函數(shù),它返回一個字典,其中包含當前程序的所有全局變量,例如我們可以使用如下語法來為字典中的某個鍵賦值:
globals()[key] = value
所以,使用下面的代碼可以實現(xiàn)自動讀取當前文件夾下全部CSV數(shù)據(jù),并將每個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如果你不清楚數(shù)據(jù)有多少Sheet,也可以使用 sheet_name=None,然后根據(jù)返回的字典自動讀取
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 讀取多份 Excel 的小技巧
到此這篇關于利用Python批量循環(huán)讀取Excel的技巧分享的文章就介紹到這了,更多相關Python批量循環(huán)讀取Excel內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
python裝飾器相當于函數(shù)的調(diào)用方式
今天小編就為大家分享一篇python裝飾器相當于函數(shù)的調(diào)用方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-12-12
Python實現(xiàn)列表轉(zhuǎn)Excel表格的第一列
這篇文章主要為大家詳細介紹了如何將Python中的列表轉(zhuǎn)換為Excel表格的第一列,并通過案例和代碼展示具體的操作步驟,希望可以幫助大家快速掌握這一技能2024-04-04
selenium+python自動化測試之使用webdriver操作瀏覽器的方法
這篇文章主要介紹了selenium+python自動化測試之使用webdriver操作瀏覽器的方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2019-01-01
Python 刪除整個文本中的空格,并實現(xiàn)按行顯示
今天小編就為大家分享一篇Python 刪除整個文本中的空格,并實現(xiàn)按行顯示,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-07-07

