如何获取Pandas DataFrame中不同Class对应的Feature特征值列表
实现方案
你可以通过pandas的groupby分组方法直接实现需求,核心逻辑是按Class列分组后将每组的Feature值转为列表即可。
完整可运行代码
import pandas as pd # 构造示例DataFrame df = pd.DataFrame([(3, 1), (4, 3), (6, 2), (7, 2), (2, 3), (4, 2), (4, 1), (1, 3), (6, 3), (8, 1)], columns=['Feature', 'Class']) # 核心处理:按Class分组,将每组Feature转为列表 class_feature_map = df.groupby('Class')['Feature'].apply(list).to_dict() # 按要求格式输出 for class_val, features in class_feature_map.items(): print(f"Class {class_val}: {features}")
输出结果
运行上述代码会直接得到你需要的输出:
Class 1: [3, 4, 8] Class 2: [6, 7, 4] Class 3: [4, 2, 1, 6]
逻辑说明
- 首先用
groupby('Class')将DataFrame按Class字段的不同取值拆分为多个分组 - 选取每个分组的
Feature列,通过apply(list)将该列的所有值转为列表格式 - 调用
to_dict()将分组结果转为字典,键为Class取值,值为对应Feature列表,方便后续遍历输出
内容的提问来源于stack exchange,提问作者user3064366
相关产品推荐
相关产品推荐

