【问题标题】:How do I import multiple excel files with similar sheet names using wild card?如何使用通配符导入多个具有相似工作表名称的 Excel 文件?
【发布时间】:2020-09-28 04:41:36
【问题描述】:

我正在使用以下代码导入名为“My Bench Sheet 1”的工作表。

bench_file_1 = pd.read_excel("Bench1.xlsx", sheet_name = "My Bench Sheet 1")

我有多个工作簿,其中的工作表以“我的工作表”开头。我想使用通配符,这样我每次导入时都不必输入工作表名称,因为除了最后的数字外,它基本上是相同的。

我尝试过使用这个通配符,但它不起作用。

bench_file_1 = pd.read_excel("Bench1.xlsx", sheet_name = "My Bench Sheet*")

【问题讨论】:

    标签: python python-3.x pandas


    【解决方案1】:

    另一种(但最安全的)方法是首先读取整个 excel 文件,收集工作表名称。如本说明所示:https://stackoverflow.com/a/17977609

    excel = pd.ExcelFile("your_excel.xlsx")
    excel.sheet_names
    # ["Sheet1", "Sheet2"]
    dfs = [pd.read_excel("your_excel.xlsx", sheet_name=n) for n in excel.sheet_names]
    

    【讨论】:

    • 这样做的一个优点是它是高性能的 - 数据只被读入内存一次,允许进一步处理而无需重复读入文件。
    【解决方案2】:

    你可以使用 f 个字符串吗?

    例如:

    for i in range(10):
        bench_file_1 = pd.read_excel("Bench1.xlsx", sheet_name = f'My Bench Sheet {i}')
    

    上面的例子只提供了一个从 0 到 9 的范围。如果您已经拥有该数字列表,则可以遍历该列表,而不是从某个范围内生成数字。

    【讨论】:

    • 但是如果有字母而不是数字怎么办。我想导入以“我的工作表”开头的工作表,而不管 Sheet 之后是什么。
    • 您需要一种方法来获取要插入到 read_excel 方法中的名称列表。 stackoverflow.com/a/17977609 提供了一种获取所有工作表名称列表的方法。然后你可以使用 python re (docs.python.org/3/library/re.html) 模块来匹配任何符合你描述的模式的模块。
    猜你喜欢
    • 2013-08-09
    • 1970-01-01
    • 1970-01-01
    • 2018-07-09
    • 2017-06-20
    • 2020-07-30
    • 1970-01-01
    • 1970-01-01
    • 2018-09-24
    相关资源
    最近更新 更多