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

如何为pandas iloc选中的列数据应用条件筛选

How to Add Conditional Filtering After Selecting Columns with pandas iloc?

Great question! Let's break down how to combine column selection with conditional filtering in pandas, since there are a few practical approaches depending on your specific scenario.

Scenario 1: Your filter column isn't in the columns you're selecting (most common case)

If column1 is one of the columns you're not including in iloc[:,2:] (remember, pandas uses 0-based indexing—so iloc[:,2:] grabs columns starting at the third column), you’ll want to filter rows first, then pick your target columns. This is the most reliable and easy-to-follow approach:

# First filter rows where column1 equals 1, then select columns from index 2 onwards
filtered_data = c[c['column1'] == 1].iloc[:, 2:]

Scenario 2: Your filter column is part of the selected columns

If column1 is actually within the columns you’re grabbing with iloc[:,2:] (for example, if you meant 1-based indexing and should have used iloc[:,1:] instead), you have two options:

  • Filter after selecting columns (use column name for better readability, or position if you don’t know the name):
    # First select columns, then filter using the column's name
    selected_cols = c.iloc[:, 2:]
    filtered_data = selected_cols[selected_cols['column1'] == 1]
    
    # Or filter using the column's position in the selected subset
    filtered_data = selected_cols[selected_cols.iloc[:, 0] == 1]
    
  • Combine both steps in one line for brevity (row indices stay aligned between the original DataFrame and the subset):
    filtered_data = c.iloc[:, 2:][c['column1'] == 1]
    

Pro Tip: Use loc for more readable code

If you know the name of the first column you want to include (instead of relying on position), loc makes your code easier to maintain and less prone to breaking if column order changes:

# Filter rows where column1 == 1, then select all columns from 'column3' to the end
filtered_data = c.loc[c['column1'] == 1, 'column3':]

Just a quick reminder: Double-check your indexing—iloc[:,2:] starts at the third column, not the second. If you meant to start at the second column, use iloc[:,1:] instead!

内容的提问来源于stack exchange,提问作者Googlebot

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 07:17:20