You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用pandas iloc筛选特定行触发SyntaxError,求合法实现方式

解决pandas筛选指定行的语法问题

你的代码报错是因为在iloc的索引列表里混合了单个索引和切片语法(3:),Python不允许这种写法。下面提供几种语法合法的实现方式:

方法1:使用numpy的np.r_拼接索引

np.r_可以将单个索引和切片组合成一个连续的索引数组,直接传给iloc:

import pandas as pd
import numpy as np

# 创建示例DataFrame
df = pd.DataFrame({'A': range(100), 'B': range(100, 200), 'C': range(200, 300)})

# 筛选第2行(索引1)和第4行及之后(索引3到末尾)的所有行
selected_rows = df.iloc[np.r_[1, 3:], :]
print(selected_rows)

方法2:手动生成索引列表

先构造包含目标索引的完整列表,再传给iloc:

import pandas as pd

df = pd.DataFrame({'A': range(100), 'B': range(100, 200), 'C': range(200, 300)})

# 组合索引:第2行索引1 + 第4行及之后的索引范围
selected_indices = [1] + list(range(3, len(df)))
selected_rows = df.iloc[selected_indices, :]
print(selected_rows)

方法3:拆分选取后拼接

分别选取目标行片段,再用pd.concat拼接:

import pandas as pd

df = pd.DataFrame({'A': range(100), 'B': range(100, 200), 'C': range(200, 300)})

# 单独选取第2行和第4行及之后的部分
part1 = df.iloc[[1], :]
part2 = df.iloc[3:, :]
# 拼接两个片段
selected_rows = pd.concat([part1, part2])
print(selected_rows)

以上三种方法都能实现你需要的筛选效果,其中方法1最简洁高效,适合处理大规模数据。

内容的提问来源于stack exchange,提问作者Wei-Lin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 14:07:16