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

Python:如何根据指定条件对DataFrame列的输出结果进行分组?

按条件筛选Pandas DataFrame中指定类别的行索引

你提供的代码已经实现了从分类数据集生成的DataFrame里,提取Class列值为0的所有行索引的功能。我来帮你拆解这段代码的逻辑,同时分享一种更符合Pandas惯用风格的写法:

原代码解析与完整示例

import numpy as np
import pandas as pd
from sklearn.datasets import make_classification

# 生成可复现的分类数据集:50个样本、6个特征、3个有效特征、2个类别
X, y = make_classification(n_samples=50, n_features=6, n_informative=3, n_classes=2, random_state=10, shuffle=True)

# 将特征矩阵和类别数组整合为结构化DataFrame,给各列命名
df = pd.DataFrame({
    'Feature 1': X[:,0], 
    'Feature 2': X[:,1], 
    'Feature 3': X[:,2], 
    'Feature 4': X[:,3], 
    'Feature 5': X[:,4], 
    'Feature 6': X[:,5], 
    'Class': y
})

# 用列表推导式遍历Class列,收集值为0的行的索引
values = [i for i,x in enumerate(df['Class']) if x == 0]
print(values)

运行这段代码会输出类似[5, 6, 9, 11, 13, 14, 17, ...]的索引列表,这些就是Class列值为0的所有行的位置。

更简洁的Pandas原生写法

其实Pandas内置了更高效、可读性更强的方式完成这个任务,无需手动遍历列:

# 利用布尔索引筛选目标行,直接提取索引并转为列表
values = df[df['Class'] == 0].index.tolist()
print(values)

这种写法完全贴合Pandas的设计逻辑,在处理大型数据集时,性能表现也会优于手动遍历的方式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 12:18:20