Python自動化辦公
背景
故事是這樣的,我的一個朋友他有十多個 excel 檔案需要合併~當時給他提供了實現的思路。但轉身一想,萬一我的朋友中還有需要如此重複操作耽誤了與小姐姐約會咋辦?不行,你們不能跟我一樣。所以為了美好的明天,今兒還是好好學習吧~
實戰
「 需求 」 將 files 資料夾下的所有檔案的資料合併成一個總檔案(注意:每個檔案的表頭都一致)
「 實現步驟 」
-
獲取 files 資料夾下的所有檔名稱
-
讀取每個檔案的資料
-
將每個檔案的資料進行拼接
-
儲存至新的檔案
「 獲取 files 資料夾下的所有檔名稱 」
首先,我們應該思考的是,Python有沒有對應的模組可以幫助我們去獲取指定資料夾下所有檔案的名稱,那資料夾實際上是在作業系統上的(比如:windows,mac),所以,我們就可以使用Python與作業系統互動的模組:os模組
# 匯入os
import os
# 改變當前工作路徑 至所有檔案所在的資料夾下
need_dir = os.chdir(r"C:\Users\lenovo\Desktop\data_ana02\04-auto_merge_files\files")
# 列出所有檔案的名稱 以列表呈現
need_file_name = os.listdir(need_dir)
need_file_name
複製程式碼
執行效果
「 讀取每個檔案的資料 」
在這兒,我們就需要思考,怎麼讀取檔案的資料?哇奧~在 Python 中,那是有相當多的模組可以讀取呀,比如:xlrd,openpyxl,numpy,pandas..那選擇誰呢?在這個應用場景下,我強烈推薦 pandas
# 匯入pandas
import pandas as pd
# 讀取 雲南白藥.csv
ylby_df = pd.read_csv("雲南白藥.csv")
# 顯示前五條
ylby_df.head()
複製程式碼
執行效果
大家會發現,讀取不同的檔案只需要傳入不同的檔名就行,那我們怎麼讀取資料夾下列表的所有檔案的資料呢?
-
使用 for 迴圈遍歷檔案列表
-
再讀取資料
# 取出每個檔案的名稱
for file_name in need_file_name:
# 讀取每個檔案的資料
data = pd.read_csv(f"{file_name}")
print(data.head())
複製程式碼
擷取其中一部分
「 將每個檔案的資料進行拼接 」
怎麼將資料如下拼接呢?
那還是使用到我們的老朋友pandas,我們可以使用 pandas.concat() 堆疊拼接。比如,兩個表格的拼接程式碼如下
# 獲取 雲南白藥.csv 資料
ylby_df = pd.read_csv("雲南白藥.csv")
# 獲取 五糧液.csv 資料
wly_df = pd.read_csv("五糧液.csv")
# 進行堆疊拼接,注意:多個表格的拼接傳入元組或列表
pd.concat((ylby_df,wly_df))
複製程式碼
執行效果
那所有檔案的資料怎麼拼接?此時我們就需要藉助到 pandas.concat() 拼接資料,實質上是將每個 df 資料裝進一個 列表或者元組中,傳進去~
# 定義 空的資料列表
data_li = []
# 取出每個檔案的名稱
for file_name in need_file_name:
# 讀取每個檔案的資料
data = pd.read_csv(f"{file_name}")
# 將資料新增到 空的資料列表中
data_li.append(data)
# print(len(data_li)) # 列表長度返回為4 ,說明構建成功
# 拼接所有檔案的資料
all_data = pd.concat(data_li)
# 獲取資料的形狀 為620行,說明成功
all_data.shape
複製程式碼
「 儲存至新的檔案 」
儲存檔案直接使用 df.to_csv() 就好了
all_data.to_csv("總資料.csv")
複製程式碼
...不管你資料夾下多少個檔案都是一樣的,趕緊玩起來吧~
「 完整程式碼 」
import os
import pandas as pd
# 改變當前工作路徑 至所有檔案所在的資料夾下
need_dir = os.chdir(r"C:\Users\lenovo\Desktop\data_ana02\04-auto_merge_files\files")
# 列出所有檔案的名稱 以列表呈現
need_file_name = os.listdir(need_dir)
def concat_file(file_name_li):
data_li = []
# 3.迴圈取出每個 檔名
for file_name in file_name_li:
# 讀取資料
# print(file_name)
data = pd.read_csv(f"{file_name}")
# 將讀取的資料新增到一個列表中
data_li.append(data)
# 進行拼接
all_data = pd.concat(data_li)
# 儲存檔案
all_data.to_csv("總資料.csv")
concat_file(need_file_name)
複製程式碼
本文的文字及圖片來源於網路,僅供學習、交流使用,不具有任何商業用途,如有問題請及時聯絡我們以作處理
想要獲取更多Python學習資料可以加QQ:2955637827私聊或加Q群630390733大家一起來學習討論吧!
相關文章
- Python 辦公自動化之 Excel(一)PythonExcel
- python實現自動化辦公01Python
- 如何實現辦公自動化?
- Python辦公自動化:效率飛躍,自動化批次彙總Excel到WordPythonExcel
- python辦公自動化系列之金蝶K3自動登入(一)Python
- python辦公自動化系列之金蝶K3自動登入(二)Python
- openpyxl 的基本操作 (辦公自動化)
- 最全總結 | 聊聊 Python 辦公自動化之 PDF(上)Python
- 最全總結 | 聊聊 Python 辦公自動化之 Excel(中)PythonExcel
- 最全總結 | 聊聊 Python 辦公自動化之 Excel(下)PythonExcel
- 最全總結 | 聊聊 Python 辦公自動化之 Word(上)Python
- 最全總結 | 聊聊 Python 辦公自動化之 Word(中)Python
- 最全總結 | 聊聊 Python 辦公自動化之 Excel(上)PythonExcel
- 最全總結 | 聊聊 Python 辦公自動化之 Word(下)Python
- python辦公自動化系列之金蝶K3(三)Python
- 最全總結 | 聊聊 Python 辦公自動化之 PPT(中)Python
- Python辦公自動化之——調整Word樣式(二)Python
- OA辦公系統,幫助企業完成協同自動化辦公
- 【Python學習教程】Python程式設計可以實現哪些辦公自動化?Python程式設計
- VBA驅動SAP GUI實現辦公自動化(一)GUI
- 辦公自動化系統必備的5個要素
- 實施辦公自動化系統需要注意什麼?
- 亂談OA辦公自動化系統開發(原創)
- 10分鐘幹完2小時的活,用Python自動化辦公能有多爽?Python
- Linux從辦公自動化做起(轉)Linux
- 辦公自動化圖書:Excel 2010應用大全 [平裝]Excel
- python 介面自動化Python
- python自動化測試Python
- 從遠端辦公看機器人流程自動化的新發展趨勢機器人
- OA辦公系統,打造企業辦公智慧化管理
- java 自動化與 python 自動化哪種程式語言吃香?JavaPython
- Python + Tornado 搭建自動回覆微信公眾號Python
- python 介面自動化測試Python
- Python 自動化提取基因 CDSPython
- Python自動化部署工具-FabricPython
- Python的iOS自動化打包PythoniOS
- 辦公自動化入門指南,從此告別繁瑣操作
- 探索IT服務檯自動化的辦法