pd.read_excel - 导入具有不同设置的多张工作表

Posted

技术标签:

【中文标题】pd.read_excel - 导入具有不同设置的多张工作表【英文标题】:pd.read_excel - import multiple sheets with different settings 【发布时间】:2021-04-06 15:08:46 【问题描述】:

我正在导入一个非常大 (60+MB) 的 xlsx 文件,其中包含许多选项卡。只有一个标签需要跳过,我试过了:

TuFile=pd.read_excel('TUp.xlsx', sheet_name=['T_up','Raw_Data','Base','Summary'], skiprows=[8,None,None,None])

注意:我正在尝试复制:TuFile = xls.parse(xls.sheet_names[3], skiprows=8),它工作得很好,除了我不能使用工作表名称。

【问题讨论】:

【参考方案1】:

当您使用pandas.read_excel() 加载多个工作表时,工作表将存储在字典中,键是相应的工作表名称。当skiprows 参数以这种方式加载多个工作表时,指定的顶部行数或给定的行列表将从所有工作表中跳过。

比如你的代码修改如下,

TuFile=pd.read_excel('TUp.xlsx', sheet_name=['T_up','Raw_Data','Base','Summary'], skiprows=[8])

这将在加载所有工作表的数据时跳过前 8 行。

当指定行列表时,

TuFile=pd.read_excel('TUp.xlsx', sheet_name=['T_up','Raw_Data','Base','Summary'], skiprows=[1, 8])

这将在加载数据时跳过所有工作表中的第一行和第八行。

因此,如果您只想跳过其中一张工作表中的行,最好的选择是通过定义工作表名称来单独加载,然后再加载其余的工作表。假设您只想跳过“T_up”表中的行并保持其余部分不变,您可以这样做,

TuFile=pd.read_excel('TUp.xlsx', sheet_name='T_up', skiprows=[8])

TuFile=pd.read_excel('TUp.xlsx', sheet_name=['Raw_Data','Base','Summary'])

【讨论】:

再戳一下,skirows 是基于 0 的,所以 skiprows=[None,4,1] 实际上会忽略每张纸中的第 2 行和第 5 行。 :( 猜猜我必须按照建议单独加载一张纸。谢谢! 是的,完全正确。 0 实际上摆脱了标题。

以上是关于pd.read_excel - 导入具有不同设置的多张工作表的主要内容,如果未能解决你的问题,请参考以下文章

pandas

pandas操作速查表

如何使用通配符导入多个具有相似工作表名称的 Excel 文件?

使用 pandas read_excel() 将 .xls 文件格式导入 python 时出现 CompDocError

整理pandas操作

Pandas常用方法手册