Pandas如何单行实现多标签列的One hot encoding独热编码
实现方案
存在可直接完成该One-Hot转换的pandas单行代码,无需编写循环或多步拼接处理。
- 核心使用pandas内置的交叉表统计方法
pd.crosstab(),按学生维度统计对应科目的选课情况,选中记为1、未选中记为0,输出结构完全匹配目标格式。 - 假设原始数据集存储在列名为
Name、Subject的DataFrame对象df中,基础转换单行代码如下:
result = pd.crosstab(index=df['Name'], columns=df['Subject']).reset_index()
- 如果需要完全移除列维度的默认索引名,让表格样式和示例完全一致,可调整为如下版本:
result = pd.crosstab(index=df['Name'], columns=df['Subject']).reset_index().rename_axis(columns=None)
- 代码运行后会自动提取所有不重复的科目作为独立列,每个学生对应单独一行,数值填充规则、列排序结果均和给出的示例匹配。
内容的提问来源于stack exchange,提问作者Hari Shreyas
相关产品推荐
相关产品推荐

