python按列索引提取文件夾內(nèi)所有excel指定列匯總(示例代碼)
前言
一、情景描述
情景一:
文件夾內(nèi)有很多excel數(shù)據(jù),包含的數(shù)據(jù)格式一樣,我們需要提取每個文件中指定的幾列數(shù)據(jù)匯總到一個文件中(因為是按列索引提取,所以列的順序可以不一樣)
匯總后:
二、python匯總
注意事項:
- 文件所在文件夾內(nèi)只能有運行文件.py,和需要匯總的文件,不能有其它文件夾,否則會出現(xiàn)運行錯誤;
- 運行第二遍時需要將第一遍運行得到的結(jié)果文件res.xlsx刪除,否則也會出現(xiàn)運行錯誤;
代碼如下(示例):
# -*- coding:utf-8 –*- import os import pandas as pd # 輸入?yún)?shù)為excel表格所在目錄 def to_one_excel(dir): dfs = [] # 遍歷文件目錄,將所有表格表示為pandas中的DataFrame對象 # for root_dir, sub_dir, files in os.walk(r'' + dir): # 第一個為起始路徑,第二個為起始路徑下的文件夾,第三個是起始路徑下的文件。 for root_dir, sub_dir, files in os.walk(dir): # 第一個為起始路徑,第二個為起始路徑下的文件夾,第三個是起始路徑下的文件。 for file in files: if file.endswith('xlsx'): # 構(gòu)造絕對路徑 file_name = os.path.join(root_dir, file) # df = pd.read_excel(file_name) df_1 = list(pd.read_excel(file_name, nrows=1)) # 讀取excel第一行數(shù)據(jù)并放進列表 # excel第一行數(shù)據(jù)返回列表 print(file_name) print(type(df_1)) print(df_1) # 根據(jù)第一行列名獲取每個文件中需要列的列索引,返回索引數(shù)值 suo_yin_1 = df_1.index("人員") suo_yin_2 = df_1.index("效率") suo_yin_3 = df_1.index("成績") suo_yin_4 = df_1.index("產(chǎn)量") suo_yin_5 = df_1.index("節(jié)點") suo_yin_6 = df_1.index("備注") # 讀取文件內(nèi)容 usecols=[1, 3, 4] 讀取第1,3,4列 df = pd.read_excel(file_name, usecols=[suo_yin_1, suo_yin_2, suo_yin_3, suo_yin_4, suo_yin_5, suo_yin_6], sheet_name='data') # pf = pd.read_excel('xxx.xls', usecols=[1, 3, 4], sheet_name='data') # print(pf) # 追加一列數(shù)據(jù),將每個文件的名字追加進該文件的數(shù)據(jù)中,確定每條數(shù)據(jù)屬于哪個文件 excel_name = file.replace(".xlsx", "") # 提取每個excel文件的名稱,去掉.xlsx后綴 df["文件名"] = excel_name # 新建列名為“文件名”,列數(shù)據(jù)為excel文件名 dfs.append(df) # 將新建文件名列追加進匯總excel中 # 行合并 df_concated = pd.concat(dfs) # 構(gòu)造輸出目錄的絕對路徑 out_path = os.path.join(dir, 'res.xlsx') # 輸出到excel表格中,并刪除pandas默認(rèn)的index列 df_concated.to_excel(out_path, sheet_name='Sheet1', index=None) # 調(diào)用并執(zhí)行函數(shù) to_one_excel(r'E:\py\python3.7\test\test96')
總結(jié)
分享:
固守舊我、維持現(xiàn)狀的最大好處就是避免改變,這就像陷入一個負(fù)能量循環(huán)圈,你越害怕去改變,就越不會有動力去改變。
到此這篇關(guān)于python按列索引提取文件夾內(nèi)所有excel指定列匯總的文章就介紹到這了,更多相關(guān)python提取excel指定列內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python中opencv K均值聚類的實現(xiàn)示例
本文主要介紹了python中opencv K均值聚類的實現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-06-06linux環(huán)境下安裝pyramid和新建項目的步驟
這篇文章簡單介紹了linux環(huán)境下安裝pyramid和新建項目的步驟,大家參考使用2013-11-11自定義Django Form中choicefield下拉菜單選取數(shù)據(jù)庫內(nèi)容實例
這篇文章主要介紹了自定義Django Form中choicefield下拉菜單選取數(shù)據(jù)庫內(nèi)容實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-03-03