Pandas如何拆分读取课程列值并生成对应0/1标记列
Pandas实现多标签课程列转独热编码方案
你可以直接使用Pandas内置的str.get_dummies方法完成转换,无需复杂自定义逻辑,操作步骤如下:
前置准备
假设你的数据集对象为df,存储学生选修课程的列名为选修课程,课程之间的分隔符为逗号(若为顿号、空格等其他分隔符,修改后续代码的sep参数即可)。
核心代码
保留原课程列的实现
import pandas as pd # 拆分课程列生成独热编码,和原数据集拼接 df = pd.concat([df, df['选修课程'].str.get_dummies(sep=',')], axis=1)
不保留原课程列的实现
import pandas as pd # 拆分后直接丢弃原课程列 df = pd.concat([ df.drop('选修课程', axis=1), df['选修课程'].str.get_dummies(sep=',') ], axis=1)
效果说明
str.get_dummies会自动提取列中所有唯一的课程名称作为新列名,对应学生选修了该课程则赋值为1,未选修则赋值为0,完全匹配你需要的转换效果。
内容的提问来源于stack exchange,提问作者S Ra
相关产品推荐
相关产品推荐

