【问题标题】:read all sheets excels in python阅读所有工作表擅长 python
【发布时间】:2020-10-12 03:59:18
【问题描述】:

我在一个文件夹中有许多 excel 文件。我想将除第一张工作表之外的所有工作表加载到数据框中。每个excel都有不同数量的工作表。例如我有 E1.xlsx、E2.xlsx。 E1 有 5 张,E2 有 9 张。我需要从 E1 加载工作表 1、2、3、4,从 E2 加载工作表 1、2、3、4、5、6、7、8(没有工作表 0)。


filenames = glob.glob( "/*.xlsx")
d = []

for filename in filenames:
    df = pd.read_excel(filename, index_col=None, sheet_name=1) # don't know how to set sheet number
    d.append(df)

data = pd.concat(d, axis=0, ignore_index=True)

我的代码在这里,但不知道如何设置工作表编号。 (sheet中的列与其他sheet完全不同,我认为阅读所有sheet并删除不是一个好选择)

【问题讨论】:

标签: python pandas xlsx


【解决方案1】:

您可以尝试以下方法吗:

import glob
import pandas as pd

filenames = glob.glob( "/*.xlsx")
d = []
not_req_sheets = [0]

for filename in filenames:
    xl = pd.ExcelFile(filename)
    for sheet_name in xl.sheet_names:
        if sheet_name not in not_req_sheets:
            df = xl.parse(sheet_name, index_col=None)
            d.append(df)

data = pd.concat(d, axis=0, ignore_index=True)

【讨论】:

    【解决方案2】:

    我会这样做:

    filenames = glob.glob( "/*.xlsx")
    d = []
    
    for filename in filenames:
        df = pd.read_excel(filename, index_col=None, sheet_name=None) # Load All Sheets
        df = df[1:] # Only need second to last sheets
        d.append(df)
    
    data = pd.concat(d, axis=0, ignore_index=True)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-01-07
      • 1970-01-01
      • 2016-12-15
      • 2018-02-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-23
      • 2019-10-25
      相关资源
      最近更新 更多