将多个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