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("成績(jī)")
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實(shí)現(xiàn)邊緣檢測(cè)以及輪廓檢測(cè)的實(shí)現(xiàn)
這篇文章主要介紹了Python使用Opencv實(shí)現(xiàn)邊緣檢測(cè)以及輪廓檢測(cè)的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-12-12
python多進(jìn)程登錄遠(yuǎn)端服務(wù)器
這篇文章主要介紹了python多進(jìn)程登錄遠(yuǎn)端服務(wù)器,文章應(yīng)用實(shí)例簡(jiǎn)易的方式詳細(xì)講解python多進(jìn)程登錄遠(yuǎn)端服務(wù)器的相關(guān)資料,需要的朋友可以參考以下文章的具體內(nèi)容2021-10-10
python3實(shí)現(xiàn)ftp服務(wù)功能(客戶端)
這篇文章主要為大家詳細(xì)介紹了python3實(shí)現(xiàn)ftp服務(wù)功能,客戶端的相應(yīng)代碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-03-03
利用python實(shí)現(xiàn)凱撒密碼加解密功能
這篇文章主要介紹了利用python實(shí)現(xiàn)凱撒密碼加解密功能,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-03-03
python下10個(gè)簡(jiǎn)單實(shí)例代碼
最近學(xué)python比較順手,找到感覺了,所以,我想把我用來練習(xí)的實(shí)例題目分享出來,有興趣的朋友可以關(guān)注一下。 文章分為10篇,每篇10題,共100道實(shí)例。后續(xù)如果需要可以增加2017-11-11
python利用dir函數(shù)查看類中所有成員函數(shù)示例代碼
這篇文章主要給大家介紹了關(guān)于python如何利用dir函數(shù)查看類中所有成員函數(shù)的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用python具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)下吧。2017-09-09
python?中的requirements.txt?文件的使用詳情
這篇文章主要介紹了python?中的requirements.txt文件的使用詳情,文章圍繞主題展開詳細(xì)內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下2022-05-05
Python性能加速器__slots__屬性優(yōu)化內(nèi)存使用實(shí)例探索
Python中的__slots__屬性是一個(gè)特殊的屬性,允許程序員顯式地定義類的屬性,提供了一種方式來優(yōu)化類的內(nèi)存占用和提高訪問速度,本文將深入探討__slots__屬性的概念、應(yīng)用和性能優(yōu)勢(shì)2024-01-01
python中根據(jù)字符串調(diào)用函數(shù)的實(shí)現(xiàn)方法
下面小編就為大家?guī)硪黄猵ython中根據(jù)字符串調(diào)用函數(shù)的實(shí)現(xiàn)方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考,一起跟隨小編過來看看吧2016-06-06

