【问题标题】:Pandas read_excel() with multiple sheets and specific columns带有多个工作表和特定列的 Pandas read_excel()
【发布时间】:2017-04-28 22:51:30
【问题描述】:

我正在尝试使用 pandas.read_excel() 从电子表格中导入多个工作表。如果我不使用 parse_cols 关键字指定列,我可以从工作表中获取所有数据,但我似乎无法弄清楚如何为每个工作表指定特定列。

import pandas as pd

workSheets = ['sheet1', 'sheet2', 'sheet3','sheet4']
cols = ['A,E','A,E','A,C','A,E']

df = pd.read_excel(excelFile, sheetname=workSheets, parse_cols='A:E')  #This works fine
df = pd.read_excel(excelFile, sheetname=workSheets, parse_cols=cols) #This returns empty dataFrames

有谁知道是否有办法使用 read_excel() 从 excel 导入多个工作表,但还可以根据哪个工作表指定特定的列?

谢谢。

【问题讨论】:

    标签: python pandas


    【解决方案1】:

    当您将工作表名称列表传递给read_excel 时,它会返回一个字典。您可以通过循环实现同样的目的:

    workSheets = ['sheet1', 'sheet2', 'sheet3', 'sheet4']
    cols = ['A,E', 'A,E', 'A,C', 'A,E']
    df = {}
    for ws, c in zip(workSheets, cols):
        df[ws] = pd.read_excel(excelFile, sheetname=ws, parse_cols=c)
    

    以下是 Python 3.6.5 和 Pandas 0.23.4 的更新:

    pd.read_excel(excelFile, sheet_name=ws, usecols=c)
    

    【讨论】:

    • 这对我来说效果很好,虽然我知道我可以在循环中完成它,但它绝对比我自己编写的循环更优雅。不过,我仍然很想知道这是否可以直接通过 read_excel 命令完成。谢谢。
    • @BinoyFernandez 从文档来看,我似乎不可能,但其他人当然可能会想出另一种解决方案。
    猜你喜欢
    • 2020-02-16
    • 2019-11-13
    • 1970-01-01
    • 2023-03-30
    • 2016-05-21
    • 2019-02-12
    • 2020-01-20
    • 2021-06-21
    • 2019-05-02
    相关资源
    最近更新 更多