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文件的名稱(chēng),去掉.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均值聚類(lèi)的實(shí)現(xiàn)示例
本文主要介紹了python中opencv K均值聚類(lèi)的實(shí)現(xiàn)示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-06-06
對(duì)Python3中列表乘以某一個(gè)數(shù)的示例詳解
今天小編就為大家分享一篇對(duì)Python3中列表乘以某一個(gè)數(shù)的示例詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-07-07
linux環(huán)境下安裝pyramid和新建項(xiàng)目的步驟
這篇文章簡(jiǎn)單介紹了linux環(huán)境下安裝pyramid和新建項(xiàng)目的步驟,大家參考使用2013-11-11
python遞歸實(shí)現(xiàn)鏈表快速倒轉(zhuǎn)
這篇文章主要為大家詳細(xì)介紹了python遞歸實(shí)現(xiàn)鏈表快速倒轉(zhuǎn),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-05-05
自定義Django Form中choicefield下拉菜單選取數(shù)據(jù)庫(kù)內(nèi)容實(shí)例
這篇文章主要介紹了自定義Django Form中choicefield下拉菜單選取數(shù)據(jù)庫(kù)內(nèi)容實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-03-03
python常見(jiàn)運(yùn)算符及用法小結(jié)
python中的運(yùn)算符主要包括算術(shù)運(yùn)算符,關(guān)系(比較)運(yùn)算符,賦值運(yùn)算符,邏輯運(yùn)算符,成員運(yùn)算符,身份運(yùn)算符,三目運(yùn)算符。使用運(yùn)算符將不同類(lèi)型的數(shù)據(jù)按照一定的規(guī)則連接起來(lái)的式子,稱(chēng)為表達(dá)式。下面將介紹一些常用的運(yùn)算符2022-08-08
python動(dòng)態(tài)規(guī)劃算法實(shí)例詳解
在本篇文章里小編給大家整理了關(guān)于python動(dòng)態(tài)規(guī)劃算法實(shí)例內(nèi)容,有需要的朋友們可以參考學(xué)習(xí)下。2020-11-11

