Python:将多个 Excel 工作簿读入一个 DataFrame

标签 python pandas dataframe

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

每个工作簿的设置都相同,具有相同的工作表名称和列名称。

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

我是 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)

假定标题出现在每个 Excel 工作表的第 11 行中,列将自动对齐。

关于Python:将多个 Excel 工作簿读入一个 DataFrame,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49862521/

相关文章:

r - R 中的数据帧行必须是唯一的?

python - 使用 pandas 组合组

python - 安装Scrapy for Python 2.6

Python while true循环未达到 "except ValueError"

python - 对不带年、月、日的时间戳数组进行算术

python - Pandas 将 nan 替换为基于另一列的第一个非 nan 值

python - 是否可以为 Django 配置 Gulp Livereload?

python - Groupby 总和、索引与列结果

python - 如何分组并计算pandas每列中非缺失值的百分比?

list - 将一列列表添加到数据框python