如何对Pandas DataFrame单列进行独热编码并添加原列名前缀?
解决方案:用Pandas实现指定列的独热编码
没问题!要实现你想要的效果,用Pandas自带的get_dummies方法就能轻松搞定,它可以精准只对col1列做独热编码,同时保留col2列不变,还能自动生成符合要求的列名。
步骤1:构造原始DataFrame
先把你给出的原始数据转换成Pandas DataFrame:
import pandas as pd # 构建原始数据 data = { 'col1': ['A', 'B', 'A', 'B'], 'col2': ['A', 'A', 'B', 'A'] } df = pd.DataFrame(data, index=['row1', 'row2', 'row3', 'row4'])
步骤2:执行独热编码
直接使用pd.get_dummies方法,指定目标列和前缀:
# 对col1列做独热编码,设置前缀为col1 encoded_df = pd.get_dummies(df, columns=['col1'], prefix='col1')
运行结果
执行后得到的encoded_df就是你想要的目标DataFrame:
col2 col1_A col1_B row1 A 1 0 row2 A 0 1 row3 B 1 0 row4 A 0 1
代码解释
columns=['col1']:明确指定只对col1列进行编码,其他列(比如col2)会被直接保留在结果中。prefix='col1':设置编码后新列的前缀,让生成的列名变成col1_A、col1_B,完美匹配你的需求。
如果更倾向于用Scikit-learn的工具,也可以用OneHotEncoder,不过对于这个简单场景,Pandas的get_dummies更简洁直接,不需要额外处理数据对齐的问题。
内容的提问来源于stack exchange,提问作者ganesh konathala
相关产品推荐
相关产品推荐

