首頁/ 汽車/ 正文

不會程式碼,也能批次資料合併,使用Python開發一個圖形互動介面

作為一名資料分析師,日報,週報,月報是少不了的,經常在整理週報或者月報的時候,需要將這周的資料或者該月的資料進行一個彙總,常規地做法是將每一天的資料進行重複地複製、貼上。

顯然,上面的方式不可取,會加重我們資料整理工作,有沒有一種簡便的方法?僅需滑鼠點一點,即可完成資料合併,本文介紹Python資料合併、圖形介面開發和Python打包,可解決上述問題。

示例工具:anconda3。7

本文講解內容:圖形介面開發,Python打包

適用範圍:使用互動式命令一鍵批次資料合併

Python資料合併

如下我們有個需求,就是將四個季度的銷售明細合併在一張表裡,本文開發的小工具也是在解決資料批次資料合併的問題。

常規情況下,匯入一個Excel資料,使用pd。read_excel命令即可,如下我們匯入了其中銷售明細第1季度的資料。

import pandas as pddf=pd。read_excel(r‘D:\系統桌面(勿刪)\Desktop\訂單銷售資料\銷售明細第1季度。xlsx’)df。head()

那麼如何匯入一個資料夾下所有的Excel資料呢?這裡使用os。listdir()命令可以返回該資料夾下的檔案目錄,返回結果如下。

import osnew_path=r‘D:\系統桌面(勿刪)\Desktop\訂單銷售資料’listdir=os。listdir(new_path)listdir

[‘銷售明細第1季度。xlsx’, ‘銷售明細第2季度。xlsx’, ‘銷售明細第3季度。xlsx’, ‘銷售明細第4季度。xlsx’]

這樣我們就有了一個思路,首先匯入第一個Excel表,然後使用for迴圈遍歷檔案目錄,使用pd。concat命令將同一個資料夾內的多個Excel表進行合併。

import pandas as pdimport osnew_path=r‘D:\系統桌面(勿刪)\Desktop\訂單銷售資料’listdir=os。listdir(new_path)df=pd。read_excel(new_path+‘\\’+ listdir[0])#匯入第一個資料表for filename in listdir[1:]: dfi=pd。read_excel(new_path+‘\\’+ filename) #匯入除第一個資料表外其他資料表 df=pd。concat([df,dfi],sort=False) #資料縱向合併 df。to_excel(new_path+‘\\’+‘資料合併。xlsx’,index=False)

如下即為表格批次合併後的結果。

不會程式碼,也能批次資料合併,使用Python開發一個圖形互動介面

我們將上面的程式碼定義為一個combine函式,只要每次匯入path的資料夾路徑,即可將資料合併。

import pandas as pdimport osdef combine(path): new_path=path listdir=os。listdir(new_path) df=pd。read_excel(new_path+‘\\’+ listdir[0])#匯入第一個資料表 for filename in listdir[1:]: dfi=pd。read_excel(new_path+‘\\’+ filename) #匯入除第一個資料表外其他資料表 df=pd。concat([df,dfi],sort=False) #資料縱向合併 df。to_excel(new_path+‘\\’+‘資料合併。xlsx’,index=False)

Python圖形介面開發

為了將程式碼的執行過程增加互動式操作,這裡使用PySimpleGUI庫開發一個圖形介面,其中,layout用於自定義窗口布局,window用於定義整體的視窗介面,while True: 迴圈執行,當滿足特定的“事件”時,則返回具體的“值”,從而實現人機互動功能。

import PySimpleGUI as sg#自定義窗口布局,一共是兩行,第一行用於查詢需要合併Excel的檔案目錄,第二行點選開始合併按鈕進行合併layout = [[sg。Text(“請選擇Excel檔案所在目錄:”),sg。Input(size=(25, 1), enable_events=True, key=“檔案路徑”),sg。FolderBrowse(button_text=“瀏覽檔案”),], [sg。Button(‘開始合併’, enable_events=True, key=“開始”),] ]window = sg。Window(‘批次資料合併:By大話資料分析’, layout)#定義視窗while True: event, values = window。read() if event in (None,): break #關閉使用者介面 elif event == “開始”: if values[“檔案路徑”]: print(values[“檔案路徑”]) sg。popup(‘資料合併已完畢!’) else: sg。popup(‘請先輸入Excel檔案所在的路徑!’)window。close()

如下將人機互動功能開發完畢,點選瀏覽檔案,找到需要批次合併檔案的資料夾目錄,點選開始合併,即可輸出結果,其中,values[“檔案路徑”]輸入的是需要合併Excel資料的檔案路徑,print打印出來的就是需要合併Excel資料的檔案路徑。

不會程式碼,也能批次資料合併,使用Python開發一個圖形互動介面

至此,Python圖形介面開發完畢,之前定義了combine函式,當滿足特定事件和值時,執行combine(values[“檔案路徑”])命令,即可使用互動式命令,完成資料表合併。

import pandas as pdimport osdef combine(path): new_path=path listdir=os。listdir(new_path) df=pd。read_excel(new_path+‘\\’+ listdir[0])#匯入第一個資料表 for filename in listdir[1:]: dfi=pd。read_excel(new_path+‘\\’+ filename) #匯入除第一個資料表外其他資料表 df=pd。concat([df,dfi],sort=False) #資料縱向合併 df。to_excel(new_path+‘\\’+‘資料合併。xlsx’,index=False)import PySimpleGUI as sg#自定義窗口布局,一共是兩行,第一行用於查詢需要合併Excel的檔案目錄,第二行點選開始合併按鈕進行合併layout = [[sg。Text(“請選擇Excel檔案所在目錄:”),sg。Input(size=(25, 1), enable_events=True, key=“檔案路徑”),sg。FolderBrowse(button_text=“瀏覽檔案”),], [sg。Button(‘開始合併’, enable_events=True, key=“開始”),] ]window = sg。Window(‘批次資料合併:By大話資料分析’, layout)#定義視窗while True: event, values = window。read() if event in (None,): break #關閉使用者介面 elif event == “開始”: if values[“檔案路徑”]: combine(values[“檔案路徑”]) sg。popup(‘資料合併已完畢!’) else: sg。popup(‘請先輸入Excel檔案所在的路徑!’)window。close()

Python程式打包

互動式的命令開發完畢,如何分享給別人使用?或者是別人的電腦上沒有安裝Python也能正常使用資料合併功能?這裡給大家介紹Python程式打包,使用虛擬環境進行打包,在命令列輸入如下命令下載pipenv包。

#使用虛擬環境壓縮pip install pipenv -i https://pypi。tuna。tsinghua。edu。cn/simple

使用快捷鍵Win+R鍵,然後輸入CMD,輸入pipenv shell命令,進入虛擬環境,沒有虛擬環境的話會自動建立一個。

#Win+R輸入CMD,進入虛擬環境,沒有虛擬環境的話會自動建立一個pipenv shell

由於Python打包會將電腦安裝的Python包全部打包,這裡我們在虛擬環境中只安裝Python程式涉及的模組,這樣會減少打包的體積,注意xlrd==1。2。0下載低版本的包,預設安裝的是高版本的,安裝高版本的包在程式使用中會報錯。

#只安裝Python程式涉及的模組pip install pandas xlrd==1。2。0 id-validator PySimpleGUI pyinstaller -i https://pypi。tuna。tsinghua。edu。cn/simple

不會程式碼,也能批次資料合併,使用Python開發一個圖形互動介面

將帶有互動式命令的資料合併程式碼匯出為。py檔案,在命令列輸入如下的打包命令,指定具體的路徑即可打包。

#進行打包pyinstaller -F -w C:\Desktop\combine。py

稍等幾分鐘,在Python的工作目錄下看到一個dist檔案,如果不知道自己的Python工作目錄,可使用os。getcwd()命令檢視。

不會程式碼,也能批次資料合併,使用Python開發一個圖形互動介面

該dist檔案包含一個combine。exe程式。

不會程式碼,也能批次資料合併,使用Python開發一個圖形互動介面

雙擊combine。exe程式,在圖形互動介面匯入具體的檔案路徑即可完成資料合併,如果你對這個批次資料合併的小工具感興趣,也想用於日常的批量表格資料合併,可以新增我後臺的聯絡方式,免費獲取。

不會程式碼,也能批次資料合併,使用Python開發一個圖形互動介面

三年網際網路資料分析經驗,擅長Excel、SQL、Python、PowerBI資料處理工具,資料視覺化、商業資料分析技能,統計學、機器學習知識,持續創作資料分析內容,點贊關注,不迷路~

相關文章

頂部