日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術(shù)文章
文章詳情頁

python 合并多個excel中同名的sheet

瀏覽:31日期:2022-06-29 13:15:03

大家好~ 老Amy來啦!已經(jīng)n久沒有給大家輸出關(guān)于辦公自動化的文章了…為什么呢?羅列原因:

太忙!(被領(lǐng)導(dǎo)“壓榨”) 太忙!(沒有額外的精力揣測大家辦公的需求) 太忙!(持續(xù)吃瓜中)

然鵝,一位朋友的困惑成為了我這種“麻木狀態(tài)”的終結(jié)者,他提出需求如下:

python 合并多個excel中同名的sheet

想不斷嘗試的老Amy,開啟了思考模式:“我要怎么實現(xiàn)這個需求呢?”。

不用著急,首先我們來分析數(shù)據(jù)本身。

分析數(shù)據(jù)特征如下:

數(shù)據(jù)所在路徑 C:UserslogicDesktopmytestfile_dir

python 合并多個excel中同名的sheet

data01.xlsx 數(shù)據(jù)如下:

python 合并多個excel中同名的sheet

data02.xlsx 數(shù)據(jù)如下:

python 合并多個excel中同名的sheet

由上可得信息如下:

所有 xlsx 工作簿都在同一個文件夾下 data01.xlsx 與 data02.xlsx 中 sheet 名相同的進(jìn)行合并。也就是202001與202001合并,其它同理。

我們需要合并數(shù)據(jù),首先需要讀取到每個工作簿下每個工作表的數(shù)據(jù),實現(xiàn)流程如下:

獲取文件夾下所有工作簿名 拼接為絕對路徑 讀取所有表格數(shù)據(jù) 保存到空列表中

那要通過代碼完成上面的連環(huán)操作,我們就需要使用到 python 中的內(nèi)置模塊 os 模塊——與操作系統(tǒng)進(jìn)行交互的模塊,來獲取文件夾下所有工作簿名,代碼如下:

import os # 導(dǎo)入模塊# 列出 C:UserslogicDesktopmytestfile_dir 下所有文件名file_name_li = os.listdir(r'C:UserslogicDesktopmytestfile_dir')file_name_li---------------------------------------------------------------------[’data01.xlsx’, ’data02.xlsx’]

但此時,無法只通過文件名去系統(tǒng)中找到對應(yīng)的文件,所以我們需要更準(zhǔn)確一點兒的地址——絕對路徑,所以現(xiàn)在我們需要拼接每個文件的絕對路徑。代碼如下:

# 遍歷出每個文件名for file_name in file_name_li: # 將文件夾絕對路徑 與 文件名進(jìn)行拼接 file_path_li = os.path.join(r'C:UserslogicDesktopmytestfile_dir',file_name) print(file_path_li) --------------------------------------------------------------------C:UserslogicDesktopmytestfile_dirdata01.xlsxC:UserslogicDesktopmytestfile_dirdata02.xlsx

有了文件的絕對路徑后,我們就可以來讀取文件中的數(shù)據(jù),那就要使用到法寶 pandas 了。首先大家注意,pandas 并不是 python 的內(nèi)置模塊,而是需要我們?nèi)グ惭b的。然后使用 pandas 的 read_excel() 方法讀取數(shù)據(jù),但是需要注意的是,此時我們需要讀取的是工作簿下的所有工作表,所以需要指定 sheet_name 為 None,否則會默認(rèn)讀取第一個工作表。代碼如下:

# 遍歷出每個文件名for file_name in file_name_li: # 將文件夾絕對路徑 與 文件名進(jìn)行拼接 file_path_li = os.path.join(r'C:UserslogicDesktopmytestfile_dir',file_name) # 讀取 excel 表格數(shù)據(jù) all_data = pd.read_excel(file_path_li,sheet_name=None) print(all_data) --------------------------------------------------------------------OrderedDict([(’202001’, 車牌號 駕駛員 起始公里 截至公里 里程數(shù) 加油金額 加油公升0 鄂J0969 陳燕 186701.0 186935 234 267.07 32.411 鄂A25JL NaN NaN 0 0 NaN NaN2 鄂A37NK 呂揚 40283.0 40993 710 512.08 68.373 鄂A332B NaN NaN 0 0 NaN NaN4 鄂A3J78L 尚超 0.0 33 33 NaN NaN5 鄂A484ZF 魯浩 50286.0 52574 2288 1340.84 191.456 鄂A620J 袁耀 41398.0 43604 2206 1579.69 225.677 鄂A7A8Z 志勇 41560.0 42883 1323 788.48 107.578 鄂AJ37Y 劉沖 0.0 73 73 NaN NaN9 鄂AD9251 毛義 3214.0 3349 135 NaN NaN10 鄂AD2192 趙敏 434.0 796 362 NaN NaN),...], ...)

從上打印出的結(jié)果(我取了第一個),會發(fā)現(xiàn)它的類型為 OrderedDict ,雖然組合起來好像不是很看得懂,但是分開來看,它的本質(zhì)實際上是 Dict。所以實際上我們可以通過 202001 來獲取對應(yīng)的數(shù)據(jù)值。如:

# 遍歷出每個文件名for file_name in file_name_li: # 將文件夾絕對路徑 與 文件名進(jìn)行拼接 file_path_li = os.path.join(r'C:UserslogicDesktopmytestfile_dir',file_name) # 讀取 excel 表格數(shù)據(jù) all_data = pd.read_excel(file_path_li,sheet_name=None) print(all_data['202001'])---------------------------------------------------------------------車牌號 駕駛員 起始公里 截至公里 里程數(shù) 加油金額 加油公升0 鄂J0969 陳燕 186701.0 186935 234 267.07 32.411 鄂A25JL NaN NaN 0 0 NaN NaN2 鄂A37NK 呂揚 40283.0 40993 710 512.08 68.373 鄂A332B NaN NaN 0 0 NaN NaN4 鄂A3J78L 尚超 0.0 33 33 NaN NaN5 鄂A484ZF 魯浩 50286.0 52574 2288 1340.84 191.456 鄂A620J 袁耀 41398.0 43604 2206 1579.69 225.677 鄂A7A8Z 志勇 41560.0 42883 1323 788.48 107.578 鄂AJ37Y 劉沖 0.0 73 73 NaN NaN9 鄂AD9251 毛義 3214.0 3349 135 NaN NaN10 鄂AD2192 趙敏 434.0 796 362 NaN NaN 車牌號 駕駛員 起始公里 截至公里 里程數(shù) 加油金額 加油公升0 鄂J0039 周鵬 15512 15512 0 NaN NaN1 鄂J0021 王林 7790 7790 0 NaN NaN2 鄂J0022 徐濤 373505 373505 0 NaN NaN3 鄂J0079 趙舟 431169 431169 0 NaN NaN4 鄂J0018 郭鷹 3635 3635 0 NaN NaN5 鄂J0808 周尊 257743 257743 0 NaN NaN6 鄂J01X3 胡志 72000 72150 150 159.26 25.167 鄂J01X0 吳軍 73031 73568 537 393.46 58.128 鄂J0F12 宋安 149017 149050 33 0.00 0.009 鄂J0F52 金煜 150617 150617 0 NaN NaN10 鄂J0272 劉兵 58124 58305 181 0.00 0.0011 鄂J02F2 胡飛 169665 169665 0 NaN NaN12 鄂J0292 王勇 111625 113121 1496 1081.37 156.5413 鄂J05R0 劉金 99278 99278 0 NaN NaN

從打印結(jié)果,可以發(fā)現(xiàn),我們通過 202001 可以取到兩個工作簿中 202001 的數(shù)據(jù),這是為什么呢?傻瓜,因為循環(huán)呀~所以,現(xiàn)在我們就想,把數(shù)據(jù)都添加到一個列表中。除此之外,我們還需要工作表名來獲取數(shù)據(jù),也就是將工作表名保存到一個集合中(以便去重)。

# 定義文件名集合all_file_name = set()# 定義數(shù)據(jù)列表all_data_li = []# 遍歷出每個文件名for file_name in file_name_li: # 將文件夾絕對路徑 與 文件名進(jìn)行拼接 file_path_li = os.path.join(r'C:UserslogicDesktopmytestfile_dir',file_name) # 讀取 excel 表格數(shù)據(jù) all_data = pd.read_excel(file_path_li,sheet_name=None) # 將數(shù)據(jù)添加到數(shù)據(jù)列表中 all_data_li.append(all_data) # 將工作表名添加到文件夾集合中 for name in all_data: all_file_name.add(name)print(all_data_li)print(all_file_name)

有了這些寶貝之后,我們就可以來實現(xiàn)非常關(guān)鍵的步驟了,也就是取出相同名稱的工作表進(jìn)行拼接保存到新的工作表中。

不過仍然要思考的是,我們怎么使用 pandas 給一個工作簿中添加多個工作表呢?那就需要使用 pd.ExcelWriter了。代碼如下:

# 創(chuàng)建工作簿writer = pd.ExcelWriter('all_data.xlsx')# 遍歷每個工作表名for sheet_name in all_file_name: data_li = [] # 遍歷數(shù)據(jù) for data in all_data_li: # 獲取同名數(shù)據(jù)并添加到data_li中 n_rows = data_li.append(data[sheet_name]) # 將同名數(shù)據(jù)進(jìn)行拼接 group_data = pd.concat(data_li) # 保存到writer工作簿中,并指定工作表名為sheet_name group_data.to_excel(writer,sheet_name=sheet_name)# 千萬莫忘記,保存工作簿writer.save()

python 合并多個excel中同名的sheet

就醬,實現(xiàn)完畢啦~哈哈哈哈哈

以上就是python 合并多個excel中同名的sheet的詳細(xì)內(nèi)容,更多關(guān)于python 合并excel中的sheet的資料請關(guān)注好吧啦網(wǎng)其它相關(guān)文章!

標(biāo)簽: python
相關(guān)文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
日本一区二区三区视频在线看| 日本一区中文字幕| 日韩福利视频一区| 综合一区二区三区| 激情91久久| 亚洲三级网站| 日韩av在线免费观看不卡| 日韩国产欧美一区二区三区| 日韩精品视频网站| 国产精品久久久免费| 久久精品一区| 欧美a一区二区| 91一区二区| 亚洲福利精品| 日韩一区欧美二区| 国产精品三p一区二区| 亚洲18在线| 美女精品久久| 国产91欧美| 91精品99| 国产日产高清欧美一区二区三区| 久久国产尿小便嘘嘘| 亚洲黄色网址| 日韩在线播放一区二区| 亚洲精品婷婷| 黑森林国产精品av| 日韩啪啪电影网| 久热精品在线| 欧美精品国产| av亚洲免费| 日韩精品免费视频一区二区三区| 久久国产婷婷国产香蕉| 中文字幕高清在线播放| 日本欧美在线看| 久久中文字幕导航| 天堂网在线观看国产精品| 日本不卡一区二区三区| 99久久99久久精品国产片果冰 | 亚洲免费成人av在线| yellow在线观看网址| 亚洲国产日韩欧美在线| 精品国产精品国产偷麻豆| 日本一不卡视频| 欧美日韩国产免费观看| 亚洲精品**中文毛片| 国产精品蜜月aⅴ在线| 在线精品亚洲| 99re国产精品| 在线综合欧美| 精品日韩毛片| 电影天堂国产精品| 久久精品国产福利| 国产极品嫩模在线观看91精品| 日韩一区欧美| 精品视频国内| 日韩**一区毛片| 日韩在线中文| 国产精品久久久久久久久久妞妞 | 亚洲欧洲一区二区天堂久久| 欧美一区久久久| 国产精品66| 鲁大师精品99久久久| 久久国内精品视频| 欧美成a人片免费观看久久五月天| 99国内精品| 亚洲精品综合| 日韩激情av在线| 欧美交a欧美精品喷水| 岛国av在线播放| 婷婷成人在线| 欧美综合国产| 日韩国产在线一| 国产精品a级| 国产一区二区三区四区大秀| 欧洲一区二区三区精品| av资源中文在线天堂| 91精品蜜臀一区二区三区在线 | 91日韩欧美| 久久影视一区| 亚洲精品日韩久久| 国产欧美自拍| 久久九九99| 日本午夜精品久久久久| 免费在线日韩av| 精品美女久久| 奶水喷射视频一区| 国产精品伦一区二区| 久久久久久久久丰满| 综合一区av| 久久国产免费| 日韩中文字幕一区二区高清99| 欧美午夜网站| 99视频精品| 美女高潮久久久| 蜜臀精品一区二区三区在线观看 | 美女精品在线观看| 免费一区二区三区在线视频| 国产aⅴ精品一区二区四区| 视频二区不卡| 婷婷视频一区二区三区| 精品久久99| 色一区二区三区| 日韩在线麻豆| 蜜桃视频欧美| 91精品国产自产观看在线| 精品视频在线观看网站| 欧美日韩激情| 国产精品白丝av嫩草影院| 影音先锋久久| 极品日韩av| 亚洲天堂资源| 精品国产乱码久久久| 热久久国产精品| 色婷婷精品视频| 久久精品国产成人一区二区三区| 欧美国产美女| 亚洲深深色噜噜狠狠爱网站| 欧美日韩国产传媒| 卡一卡二国产精品| 久久国产精品色av免费看| 极品日韩av| 中文字幕高清在线播放| 免费亚洲婷婷| 国产精品一国产精品| 国产亚洲人成a在线v网站| 香蕉精品久久| 免费黄色成人| 国产精品久久乐| 日本va欧美va精品发布| 午夜日韩av| 国产欧美日韩影院| 国产精品夜夜夜| 日韩av资源网| 日韩精品高清不卡| 久久国产精品久久久久久电车 | 午夜精品网站| 91久久在线| 日韩精品免费一区二区夜夜嗨| 91成人在线| 国产在线不卡一区二区三区 | 天堂网在线观看国产精品| 最新亚洲激情| 综合国产视频| 久久99视频| 成人羞羞视频播放网站| 亚洲精品1区| 国产精品一卡| 精品国产一区二区三区av片| 亚洲一区二区免费在线观看| 亚洲精品乱码日韩| 精品一区二区三区四区五区| 福利片在线一区二区| 亚洲精华国产欧美| 久久99久久人婷婷精品综合| 久久久久99| 99在线|亚洲一区二区| 911亚洲精品| 欧洲av一区二区| 亚洲毛片在线免费| 日韩精品免费一区二区在线观看 | 久久免费高清| 日韩高清三区| 国产成人精品一区二区三区免费 | 韩日一区二区| 91久久午夜| 裤袜国产欧美精品一区| 免费人成黄页网站在线一区二区| 国产66精品| 欧美永久精品| 性欧美长视频| 久久视频国产| 成人精品视频| 麻豆精品视频在线观看免费| 国产综合婷婷| 成人福利视频| 国产一区2区| 欧美日韩一区二区三区不卡视频| 亚洲激情不卡| 久久久久伊人| 国产日韩1区| 亚洲精品美女| 亚洲三级毛片| 免费在线欧美视频| 欧美中文一区二区| 色婷婷精品视频| 美女一区网站| 欧美不卡高清一区二区三区| 福利欧美精品在线| 久久免费福利| 精品国产乱码久久久久久1区2匹| 日韩av字幕| 久久精品国产一区二区| 亚洲激情中文| 日韩avvvv在线播放| 亚洲免费资源| 国产欧美69| 蜜臀av国产精品久久久久| 日韩一区二区久久| 亚洲一区二区三区高清| 日本大胆欧美人术艺术动态|