python按列索引提取文件夾內(nèi)所有excel指定列匯總(示例代碼)
前言
一、情景描述
情景一:
文件夾內(nèi)有很多excel數(shù)據(jù),包含的數(shù)據(jù)格式一樣,我們需要提取每個(gè)文件中指定的幾列數(shù)據(jù)匯總到一個(gè)文件中(因?yàn)槭前戳兴饕崛?,所以列的順序可以不一?
匯總后:
二、python匯總
注意事項(xiàng):
- 文件所在文件夾內(nèi)只能有運(yùn)行文件.py,和需要匯總的文件,不能有其它文件夾,否則會(huì)出現(xiàn)運(yùn)行錯(cuò)誤;
- 運(yùn)行第二遍時(shí)需要將第一遍運(yùn)行得到的結(jié)果文件res.xlsx刪除,否則也會(huì)出現(xiàn)運(yùn)行錯(cuò)誤;
代碼如下(示例):
# -*- coding:utf-8 –*- import os import pandas as pd # 輸入?yún)?shù)為excel表格所在目錄 def to_one_excel(dir): dfs = [] # 遍歷文件目錄,將所有表格表示為pandas中的DataFrame對(duì)象 # for root_dir, sub_dir, files in os.walk(r'' + dir): # 第一個(gè)為起始路徑,第二個(gè)為起始路徑下的文件夾,第三個(gè)是起始路徑下的文件。 for root_dir, sub_dir, files in os.walk(dir): # 第一個(gè)為起始路徑,第二個(gè)為起始路徑下的文件夾,第三個(gè)是起始路徑下的文件。 for file in files: if file.endswith('xlsx'): # 構(gòu)造絕對(duì)路徑 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ù)并放進(jìn)列表 # excel第一行數(shù)據(jù)返回列表 print(file_name) print(type(df_1)) print(df_1) # 根據(jù)第一行列名獲取每個(gè)文件中需要列的列索引,返回索引數(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é)點(diǎn)") 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ù),將每個(gè)文件的名字追加進(jìn)該文件的數(shù)據(jù)中,確定每條數(shù)據(jù)屬于哪個(gè)文件 excel_name = file.replace(".xlsx", "") # 提取每個(gè)excel文件的名稱,去掉.xlsx后綴 df["文件名"] = excel_name # 新建列名為“文件名”,列數(shù)據(jù)為excel文件名 dfs.append(df) # 將新建文件名列追加進(jìn)匯總excel中 # 行合并 df_concated = pd.concat(dfs) # 構(gòu)造輸出目錄的絕對(duì)路徑 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)狀的最大好處就是避免改變,這就像陷入一個(gè)負(fù)能量循環(huán)圈,你越害怕去改變,就越不會(huì)有動(dòng)力去改變。
到此這篇關(guān)于python按列索引提取文件夾內(nèi)所有excel指定列匯總的文章就介紹到這了,更多相關(guān)python提取excel指定列內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python中opencv K均值聚類的實(shí)現(xiàn)示例
本文主要介紹了python中opencv K均值聚類的實(shí)現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-06-06對(duì)Python3中列表乘以某一個(gè)數(shù)的示例詳解
今天小編就為大家分享一篇對(duì)Python3中列表乘以某一個(gè)數(shù)的示例詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-07-07linux環(huán)境下安裝pyramid和新建項(xiàng)目的步驟
這篇文章簡單介紹了linux環(huán)境下安裝pyramid和新建項(xiàng)目的步驟,大家參考使用2013-11-11python遞歸實(shí)現(xiàn)鏈表快速倒轉(zhuǎn)
這篇文章主要為大家詳細(xì)介紹了python遞歸實(shí)現(xiàn)鏈表快速倒轉(zhuǎn),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-05-05自定義Django Form中choicefield下拉菜單選取數(shù)據(jù)庫內(nèi)容實(shí)例
這篇文章主要介紹了自定義Django Form中choicefield下拉菜單選取數(shù)據(jù)庫內(nèi)容實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-03-03python動(dòng)態(tài)規(guī)劃算法實(shí)例詳解
在本篇文章里小編給大家整理了關(guān)于python動(dòng)態(tài)規(guī)劃算法實(shí)例內(nèi)容,有需要的朋友們可以參考學(xué)習(xí)下。2020-11-11