我需要使用python从Excel文件中的工作表中读取多个表。该工作表如下所示:
我想获取一个包含Firat_Table中信息的python对象,以及Sencond_Table中的信息。 我尝试通过这种方式使用pandas和Dataframe.iloc:
import pandas as pd
xls = pd.ExcelFile('path_to_xls_file')
df = pd.read_excel(xls, "sheet_1")
# first table
df1 = df.iloc[2:12,0:6]
但是我没有从First_Table中获得预期的单元格。 我在行和列的范围上做错了吗? 是否必须使用确切的row和col索引来指定它,还是有一种更有效,更优雅的方式来做到这一点?
谢谢!
答案 0 :(得分:2)
使用“ usecols”参数选择要从excel文件读取的列。熊猫会相应地选择行。
此外,您需要将index设置为False,以避免将第一列作为索引。
以下是您的任务的示例代码
pd.read_excel(path, usecols=range(1,6), index=False)
中查找更多信息
答案 1 :(得分:2)
该方法是正确的,但是可能不是最佳方法。您无法正确显示表格,因为索引不正确-根据屏幕df1 = df.iloc[1:12,1:6]
可以完成此工作。
更好的解决方案是为pd.read_excel()
标题:整数,整数列表
默认值0行(0索引),用于解析的DataFrame的列标签。 如果传递了整数列表,则这些行位置将合并为一个MultiIndex。
如果没有标题,则使用 None
usecols :整数或列表,默认为无
如果 None 然后解析所有列,
如果 int 则指示 被解析
如果整数列表,则指示要 解析
如果字符串则表示Excel列的逗号分隔列表 字母和列范围(例如“ A:E”或“ A,C,E:F”)。范围是 包括双方。
取自:https://pandas.pydata.org/pandas-docs/stable/generated/pandas.read_excel.html
此外,可能有一些软件包设计用于读取一张纸中的多个表,但是我不知道有哪个软件包。