如何使用Pandas筛选Excel表格中需展示的指定行?
筛选Excel指定行的几种实现方法
1. 按行号筛选
读取后筛选
如果已经读取了全量数据,直接用iloc按行索引(从0开始计数)筛选:
data = pd.read_excel("TABLE.xlsx", usecols='D,E,F') # 取Excel里的第2到第5行(pandas索引是0-based,所以用1:5) filtered_data = data.iloc[1:5] print(filtered_data)
读取时直接指定
提前明确要取的行范围,可在读取阶段就限制,节省内存:
# 跳过前3行,只读取接下来的10行 data = pd.read_excel("TABLE.xlsx", usecols='D,E,F', skiprows=3, nrows=10)
2. 按列值条件筛选
根据列的内容筛选,用布尔索引最灵活:
- 单条件筛选:比如筛选E列数值大于100的行
data = pd.read_excel("TABLE.xlsx", usecols='D,E,F') filtered_data = data[data['E'] > 100]
- 多条件组合:比如E列>100且F列包含"完成"
# 注意用&连接条件,每个条件单独加括号 filtered_data = data[(data['E'] > 100) & (data['F'].str.contains('完成'))]
3. 按自定义标签筛选
如果D列是唯一标识(比如ID),可以把它设为索引,用loc按标签取行:
# 读取时将D列设为索引 data = pd.read_excel("TABLE.xlsx", usecols='D,E,F', index_col='D') # 筛选D列为ID001、ID003的行 filtered_data = data.loc[['ID001', 'ID003']]
4. 读取阶段动态筛选
如果数据量很大,不想加载全量数据,给skiprows传一个函数来跳过不需要的行:
# 只保留偶数行号(从0开始计数)的行 def filter_rows(row_idx): return row_idx % 2 != 0 data = pd.read_excel("TABLE.xlsx", usecols='D,E,F', skiprows=filter_rows)
内容的提问来源于stack exchange,提问作者Jay
相关产品推荐
相关产品推荐

