将多个excel文件导入pythonpandas并将它们连接成一个数据框

我想从一个目录读取几个excel文件到pandas,并把它们连成一个大的数据框。 我还没有弄明白。 我需要for循环的一些帮助,并build立一个连接的数据框:这是我迄今为止:

import sys import csv import glob import pandas as pd # get data file names path =r'C:\DRO\DCL_rawdata_files\excelfiles' filenames = glob.glob(path + "/*.xlsx") dfs = [] for df in dfs: xl_file = pd.ExcelFile(filenames) df=xl_file.parse('Sheet1') dfs.concat(df, ignore_index=True) 

正如在评论中提到的,你正在做的一个错误是你正在循环一个空的列表。

这里是我将如何做,使用5个相同的Excel文件一个接一个地追加的例子。

(1)import:

 import os import pandas as pd 

(2)列表文件:

 path = os.getcwd() files = os.listdir(path) files 

输出:

 ['.DS_Store', '.ipynb_checkpoints', '.localized', 'Screen Shot 2013-12-28 at 7.15.45 PM.png', 'test1 2.xls', 'test1 3.xls', 'test1 4.xls', 'test1 5.xls', 'test1.xls', 'Untitled0.ipynb', 'Werewolf Modelling', '~$Random Numbers.xlsx'] 

(3)挑出'xls'文件:

 files_xls = [f for f in files if f[-3:] == 'xls'] files_xls 

输出:

 ['test1 2.xls', 'test1 3.xls', 'test1 4.xls', 'test1 5.xls', 'test1.xls'] 

(4)初始化空dataframe:

 df = pd.DataFrame() 

(5)遍历文件列表以追加到空dataframe:

 for f in files_xls: data = pd.read_excel(f, 'Sheet1') df = df.append(data) 

(6)享受你的新数据框。 🙂

 df 

输出:

  Result Sample 0 a 1 1 b 2 2 c 3 3 d 4 4 e 5 5 f 6 6 g 7 7 h 8 8 i 9 9 j 10 0 a 1 1 b 2 2 c 3 3 d 4 4 e 5 5 f 6 6 g 7 7 h 8 8 i 9 9 j 10 0 a 1 1 b 2 2 c 3 3 d 4 4 e 5 5 f 6 6 g 7 7 h 8 8 i 9 9 j 10 0 a 1 1 b 2 2 c 3 3 d 4 4 e 5 5 f 6 6 g 7 7 h 8 8 i 9 9 j 10 0 a 1 1 b 2 2 c 3 3 d 4 4 e 5 5 f 6 6 g 7 7 h 8 8 i 9 9 j 10