如何用Python快速導入多個excel文件併合並文件數據
日常工作中,每個月都會遇到那麼個固定的工作,將業務方同事整理的數據導入GP資料庫中的某張表中;聽起來是很簡單的活呢!
但每次業務MM總會發來一個文件夾,裡面有三四十個Excel文件(.xlsx格式,且欄位名稱相同)。據業務MM說,分那麼多文件是為了方便對賬,所以不能合放在一起。
作為一個小菜鳥,拿到這個數據,我先想到的做法是:
(1)新建一個excel文件A;
(2)將這三、四十個文件數據分別複製到A中。
(3)將文件A另存為csv文件;
(4)利用copy指令將數據導入GP資料庫中的表。
一個文件一個文件的導入或者複製再導入,確實是重複勞動、浪費時間;幾次操作下來,枯燥又心累~
心裡想一定得找到新的方法,提高效率,同時解放自己。剛好在學習python,那就用python試試把這些數據合併在一起吧!經過在網上搜索的資料,拼拼湊湊,,終於弄好了一個自動合併數據的小腳本。
思路如下:
(1)用python讀取固定文件夾下所有的excel(.xlsx)文件
(2)合併這些文件數據,並將結果存在同一個文件中
腳本如下:
#導入需要用到的模塊
import os
import pandas as pd
import numpy as np
#需要處理的文件夾所在的路徑
dir = "e:\test"
#新建列表,存放文件名(可以忽略,但是為了做的過程能心裡有數,先放上)
filename_excel = []
#新建列表,存放每個文件數據框(每一個excel讀取後存放在數據框)
frames = []
#循環讀取文件夾下的文件名
for root, dirs, files in os.walk(dir):
for file in files:
filename_excel.append(os.path.join(root,file))
frames.append(df)
#列印文件名
print(filename_excel)
#合併所有數據
result = pd.concat(frames)
#查看合併後的數據
result.head()
result.shape
#將合併後的數據放在E盤的ceshi.csv文件中,這裡可以根據實際需求存放文件格式
result.to_csv("e:\ceshi.csv, sep=",",index = False)
稍微處理一下合併後的文件,例如刪除標題行等(為什麼這一步在前面沒做,是因為每個文件的標題行一致,如果用skiprows=[0]會導致每個文件都少了一行)。最後用copy語句導入GP資料庫表。


TAG:Python |