如何用Pandas在Python中选取Excel特定行与列?
使用Pandas选取Excel特定行和列的正确方法
首先,先把Excel数据完整加载为DataFrame对象,这是后续操作的基础:
import pandas as pd # 加载指定工作表的全部数据 df = pd.read_excel('this_file.xls', sheet_name="Entrees")
一、选取特定行
1. 按位置索引(从0开始计数)
用iloc按行的位置序号选取,比如取第4行(对应索引3):
# 取单行 specific_row = df.iloc[3] # 取连续多行,比如第3到第5行(索引2、3、4) specific_rows = df.iloc[2:5]
2. 按标签索引(自定义索引列)
如果要指定某列作为行索引(比如你尝试的第3列,对应index_col=2),加载时设置索引后,要用loc按标签取行:
# 加载时指定第3列(索引从0开始)为行索引 df = pd.read_excel('this_file.xls', sheet_name="Entrees", index_col=2) # 按行索引标签取值,替换"目标标签"为实际的索引值 specific_row = df.loc["目标标签"]
你之前用index_col=2后直接写[3]无效,是因为此时[3]会被当成列名查找,而非行索引标签,必须通过loc定位行标签。
二、选取特定列
1. 按列名选取
直接通过列名取值:
# 取单列 specific_col = df["目标列名"] # 取多列 specific_cols = df[["列名1", "列名2"]]
2. 按位置选取列
用iloc按列的位置序号选取,比如取第2列(索引1):
# : 表示选取所有行,逗号后指定列位置 specific_col = df.iloc[:, 1]
三、同时选取特定行和列
比如取第4行(索引3)的第2列(索引1):
# 按位置定位 target_value = df.iloc[3, 1] # 按标签定位(行标签+列名) target_value = df.loc["目标行标签", "目标列名"]
你之前代码失败的原因
pd.read_excel()返回的DataFrame直接用[3]时,会尝试查找列名为3的列,而非第4行,所以取不到目标行。- 指定
index_col=2后,[3]依然是查找列名,而非行索引标签,必须用loc来匹配行标签。
内容的提问来源于stack exchange,提问作者Nocxy
相关产品推荐
相关产品推荐

