小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

如何用150秒完成1000個Excel表格的合并

 老張的菜地 2020-02-18

離下班還有五分鐘,QQ突然來消息:

我懷著激動,緊張,忐忑的心情解壓了一個名為“全國空氣質(zhì)量”神秘壓縮包!

?。?! 

2016年至今中國所有城市空氣質(zhì)量數(shù)據(jù)!

  • 共有912個CSV表格。

  • 每個表格共370列,約360行不等,列名相同。

 而我!要把這912個表格合并成一張表格?。?!

三個方案瞬間浮現(xiàn)在我眼前:

1、Ctrl C + Ctrl V——可以睡公司了;

2、Excel Power Query,估計等電腦卡崩了,還得用回方案一;

3、敲代碼!俗話說,沒有什么是一行代碼解決不了的,如果有,就再敲一行。

工欲善其事,必先利其器,我果斷祭出了兩件敲碼神器!

Python是一種,嗯…總之很厲害的編程語言,它能夠做網(wǎng)站,做軟件,做網(wǎng)絡(luò)爬蟲,做數(shù)據(jù)分析,做人工智能,做游戲和完成老板布置的工作。

Jupyter Notebook 是一本可以寫代碼的…草稿本,你可以大膽地在上面隨意涂鴉。你可以寫Julia, Python, Erlang, R等(jupyter),當然還可以用來完成老板布置的工作。

神器在手,我立刻開始思考代碼。

首先,我把這個問題分解成四個小目標: 

01

查找到工作表所在文件位置

02

提取表格

03

合并表格

04

導出

01

查找文件位置

首先我們導入python的os模塊: import os

os模塊:

os 模塊提供了非常豐富的方法用來處理文件和目錄。

使用os模塊的walk方法輸出指定目錄的文件

for file in os.walk('H:/Document/神秘文件'):

    print(file)

os.walk() 方法:

os.walk() 方法用于通過在文件目錄樹中游走輸出在目錄中的文件名。

我使用for循環(huán)遍歷‘H:/Document/全國空氣質(zhì)量匯總’,這個文件目錄,得到一個(),這是“元組”(姑且理解為一個盛放東西的容器)。里面用兩個逗號分成三部分:

1)第一部分就是我輸入的文件夾目錄。

2)第二部分是個空列表,不去管它。

3)第三部分也是一個列表,里面是我要提取的每個工作表。 

第一個小目標達成:

02

提取表格

首先,我需要知道工作表的文件路徑,這很簡單!完整的路徑就是文件夾目錄+工作表名稱。

如圖—— 

然后,我定義一個列表,嗯…這也是個容器,容納提取的912個文件。

l = []

接著,我導入pandas包,用read_csv()方法來提取工作表。

Pandas包:

一款提取,清洗,處理數(shù)據(jù)的神器。

容器:

Python中有四種容器,列表;元組;字典;集合。功能和用法不同。

Pandas.read_csv()方法:

Pandas用來提取csv文件的方法。

最后,寫好循環(huán),把提取的文件裝進列表中。

別忘了設(shè)置一個計數(shù),用來運行時顯示進度。 

第二個小目標達成:

03

合并表格

這里我們用到了pandas的concat方法。

pandas.concat()

pandas.concat()方法:

用于拼接多份數(shù)據(jù)的方法。

合并剛才列表‘l’中的所有工作表到data_result這個變量中。 

第三個小目標達成:

04

導出表格

同樣,解決問題的方法也來自于pandas這款神器。

pandas.DataFrame.to_csv()方法

pandas.DataFrame.to_csv()方法:

用于導出Dataframe數(shù)據(jù)為csv格式的方法。

類似的方法還有pandas.DataFrame.to_excel()等。

其實,pandas可以保存數(shù)據(jù)為許多種格式,這里我還是選擇了最常用的csv格式。

這里括號內(nèi)首先填寫保存的數(shù)據(jù)路徑和名稱,其次,別忘了設(shè)置index=0的參數(shù),否則數(shù)據(jù)會多出一列索引列。???聽不明白?動手試一試就明白了。

第四個小目標達成: 

讓我們回顧一下代碼全貌:

代碼不長,一共20行。

其中用橙色框選出的是代碼核心部分,一共9行,這是實現(xiàn)工作表合并最基本的代碼。

主要的工作思路是找到工作表所在的文件夾,提取其中每個工作表,合并它們,然后導出數(shù)據(jù)。(四個小目標)

代碼雖少,復用性卻很強,以后碰到類似的工作任務(wù),我們只需要更改數(shù)據(jù)所在文件夾和導出數(shù)據(jù)的兩個路徑即可。

好了,運行代碼!

 見證奇跡的時刻到了!

合并912個工作表僅僅只要150秒!

厲!不!厲!害!

然而,正當我準備下班的時候…老板又戳我了!


這就可以難倒我嗎?不存在的!是時候拿出真正的利器了!

防加班神器——Excel工作表合并工具

純python開發(fā),應(yīng)用場景包括單工作簿多工作表、多工作簿多工作表、多文件夾多工作簿的合并。并且可以處理同時含以上三種情況的綜合問題!

看圖!


敲一敲回車,從此遠離加班!

 

import os

os.system('shutdown-s -t 0')

友情提示:運行前請先保存好所有需要的文件

然后…我終于可以回家了!

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多