Pandas使用read_excel()读取多个工作表和指定列

9
我尝试使用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中导入多个工作表,并根据每个工作表指定特定的列?谢谢。
1个回答

10

当你向read_excel传递一个工作表名称列表时,它会返回一个字典。你可以使用循环来达到相同的效果:


当您将一个工作表名称列表传递给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命令直接完成这个任务。谢谢。 - Binoy Fernandez
@BinoyFernandez 从文档上看,我觉得似乎不可能,但当然也有其他人可能会想出另一种解决方案。 - ayhan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接