Python:将多个Excel工作簿读入一个数据框

Python:将多个Excel工作簿读入一个数据框,python,pandas,dataframe,Python,Pandas,Dataframe,在一个文件夹中,我有大约150本不同的工作簿(xlsx),我想将其读入python数据框架中进行分析 每个工作簿都以相同的工作表名和列名设置 我需要将每个工作簿的第一页(“关键字排名”)上传到每个数据框。对于读入的第一个工作表,我希望从第11行开始维护列标题;之后的每个工作表,我都希望从第12行开始附加到我的数据框中 我是Python新手,一直在网上阅读一些说明,但我被卡住了。据我所知,我可以使用xlrd库来实现这一点 我一直在玩弄下面的代码,但还没走多远“关键字排名”是我想附加的表名 impo

在一个文件夹中,我有大约150本不同的工作簿(xlsx),我想将其读入python数据框架中进行分析

每个工作簿都以相同的工作表名和列名设置

我需要将每个工作簿的第一页(“关键字排名”)上传到每个数据框。对于读入的第一个工作表,我希望从第11行开始维护列标题;之后的每个工作表,我都希望从第12行开始附加到我的数据框中

我是Python新手,一直在网上阅读一些说明,但我被卡住了。据我所知,我可以使用xlrd库来实现这一点

我一直在玩弄下面的代码,但还没走多远“关键字排名”是我想附加的表名

import pandas as pd
import numpy as np
import glob as glob

all_data = pd.DataFrame()
all_data = pd.ExcelFile("C:\\Users\\John Smith\\Documents\\Analysis\\FPR Nov - Mar 2018\\Dec_1_General.xlsx")
print(all_data.sheet_names)
all_d = all_data.parse('Keywords Rankings')

for f in glob.glob("Users\\John Smith\\Documents\\Analysis\\FPR Nov - Mar 2018\\*.xlsx", recursive=True):
    df = pd.read_excel(f)
    all_d = all_d.append(df,ignore_index=True)

您不应该不断地附加到现有的
pd.DataFrame
,因为这将极为低效

您应该使用带有数据帧列表的
pandas.concat

这可以通过列表理解来实现:

df = pd.concat([pd.read_excel(f, skiprows=range(10)) for f in files], axis=0)

假设第11行的每个Excel工作表中都有标题,列将自动对齐。

当我为文件{files=“Documents\Analysis\FPR Nov-Mar 2018*”}创建变量时,我会收到一个错误,指出“FileNotFoundError:[Errno 2]没有这样的文件或目录:'D'”,我已检查并且我的当前目录是正确的。我应该为file变量输入不同的内容吗?
文件
应该是文件的完整路径列表。您只包含了文件夹名称。所以,是的,您应该查找如何检索完整路径。我尝试了从C:drive开始的完整路径名和部分路径名。我一直在最后使用“\*”表示我想要最终文件夹中的所有文件。这是正确的符号吗?我不知道。关于如何使用标准库提取文件名有很多问题,我建议您查找它们。