【python數據處理(3)】批量Excel數據表格合併彙總並生成爲一個新的表格保存本地

1. 背景

實際操作中,往往會處理一些相同格式的Excel表格數據,比如某商家都是按照每月進行產品A和B的數據的統計,有時爲了季度或者年度數據的處理,就需要將多個Excel中的表格數據彙總到一起(不是覆蓋),並且表格的標題還不變,也就產生了題目的要求,方便之後的數據處理
在這裏插入圖片描述
假設表格中內容如下:(標題相同,但是數據不同,以第一個文件中數據爲例)
在這裏插入圖片描述

2. 代碼編寫

主要是使用到了pandas裏面的concat方法,先給出全部代碼,然後進行解析

import os
os.chdir(r'C:\Users\86177\Desktop\demo')
import glob
import pandas as pd

paths = glob.glob('*.xlsx')
print(paths,'\n')
print('------------\n')
df = pd.DataFrame()
for path in paths:
    df_ = pd.read_excel(path)
    df = pd.concat([df,df_])

print(len(df))
df.to_excel('data.xlsx',index = False)

3. 代碼解析

1)設置代碼的運行路徑,這個屬於自己的編程習慣,每次運行代碼之前會把路徑設定在要操作的文件夾所對應的路徑,方便對於該文件夾下數據的獲取,比如這裏就是設定在桌面的demo文件夾下

import os
os.chdir(r'C:\Users\86177\Desktop\demo')

2) 導入glob庫是爲了選取示例文件夾中所有的Excel文件(格式都是相同的),只需要將名稱用*號代替,保留後綴名即可,*號前面的內容就是測試文件夾的路徑,然後返回的是一個列表,包含了所有Excel文件的名稱

import glob
paths = glob.glob(r'*.xlsx')
print(paths)

–> 輸出結果爲:

['data01.xlsx', 'data02.xlsx', 'data03.xlsx']

2) 創建一個空的DataFrame數據,因爲pd.concat方法的使用是需要有一個基礎的或者已有的DataFrame數據作爲參考的,既然在讀取第一份Excel表格前沒有參照,就可以創建一個空的數據進行數據合併,合併之後的結果就是導入的第一份Excel表格中的內容

df = pd.DataFrame()

3)一次遍歷paths中的數據,也就是文件的名稱,同時由於系統運行設置的路徑已經是在該文件夾裏,所以文件名稱也是要讀取文件的路徑了,接着就可以將數據逐次進行合併了,df會由一個空的數據,變成三個表格數據彙總後的總數據

for path in paths:
    df_ = pd.read_excel(path)
    df = pd.concat([df,df_])

4)最後將數據保存到本地,可以順帶輸入一下彙總後的總長度,用來驗證(這裏的數值並不是真正意義上的每個月,只是用來做演示,將每個Excel中的數據都配置爲30個,所以彙總後是90個)

print(len(df))
df.to_excel('data.xlsx',index = False)

5) 輸出結果爲:
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章