【问题标题】:Read multiple sheets in multiple excel files using pandas使用 pandas 读取多个 excel 文件中的多个工作表
【发布时间】:2021-02-18 17:05:25
【问题描述】:

在将所有数据集放入 2D 卷积层之前,我正在尝试使用 pandas 制作一个列表。

我能够将多个 excel 文件中的所有数据合并为一个列表。

但是,该代码仅读取多个 Excel 文件中选择的一个工作表名称。

例如,我在每个 excel 文件中有 7 张工作表;命名为“gpascore1”、“gpascore2”、“gpascore3”、“gpascore4”、“gpascore5”、“gpascore6”、“gpascore7”。

每张纸有 4 行 425 列

如下图,可以看代码。

import os
import pandas as pd

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

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

df = pd.DataFrame()

for f in files_xls:
    data = pd.read_excel(f, 'gpascore1') # Read only one chosen sheet available -> 
                                           gpascore1 is a sheet name.
    df = df.append(data)                 # But there are 6 more sheets and I would like 
                                           to read data from all of the sheets

data_y = df['admit'].values
data_x = []

for i, rows in df.iterrows():
    data_x.append([rows['gre'], rows['gpa'], rows['rank']])

df=df.dropna()
df.count()

然后,我得到了如下结果。

这是因为 'gpascore1' 表中的 3 个 excel 文件中的数据被合并了。

但是,我想读取 excel 文件中另外 6 个工作表的数据。

谁能帮我找出答案,好吗?

谢谢

========================================= ========

感谢您的回答,我将 read_excel() 修改为

 data = pd.read_excel(f, 'gpascore1') to
 data = pd.read_excel(f, sheet_name=None)

但是,我有如下关键错误。

请您就这个问题给我一些建议吗?

谢谢

【问题讨论】:

  • 如果你通过 sheet_name = None pd.read_excel 将返回一个数据框字典,其中键是工作表名称
  • 您可以通过创建列表来循环工作表名称
  • 感谢 Manakin 的回答并尝试更改代码,但它显示了一些关键错误问题,因此我发布了更新的错误。请您检查一下发生了什么?

标签: python excel pandas tensorflow


【解决方案1】:

我实际上在“tensorflow”标签下发现了这个问题。那真好笑。好的,那么您想将所有 Excel 工作表合并到一个数据框中吗?

import os
import pandas as pd

import glob
glob.glob("C:\\your_path\\*.xlsx")

all_data = pd.DataFrame()
for f in glob.glob("C:\\your_path\\*.xlsx"):
    df = pd.read_excel(f)
    all_data = all_data.append(df,ignore_index=True)
    
type(all_data)

【讨论】:

  • 您好,感谢您的回答。我实际上尝试为卷积层的 3d 输入形状制作几个数据帧。使用一张 excel 数据,我可以获得训练和验证数据集的 2d 类型数据集形状。但是,我想在 excel 中获得多个带有几张工作表的数据框。因此,我可以将数据集的 3d 输入形状放到 1d 卷积层中。
  • 然后,正如您在帖子中看到的数据集捕获的图像,有 1 个验证数据(即“承认”)和 3 个训练数据(即“gre”、“gpa” '和'排名')。我在同一个 excel 文件(gpascore01)中还有 7 个工作表。实际上,我手动将所有 excel 文件(gpascore01、02、03)合并在一起,并将所有数据集排列在一个 excel 文件中,即“gpascore01”。
  • 我在以下链接中提出了问题,stackoverflow.com/questions/66468568/…。希望能得到您的帮助。
猜你喜欢
  • 2020-07-17
  • 1970-01-01
  • 2021-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-03-26
  • 1970-01-01
  • 2016-08-13
  • 1970-01-01
相关资源
最近更新 更多