如何将Dataframe转换为机器学习所需的独热编码格式
解决方案
你要的是独热编码(One-Hot Encoding),用pandas内置的pd.get_dummies()就能一步实现,无需纠结pivot_table或melt。
代码示例
假设你的原始数据集存储在名为df的DataFrame中:
import pandas as pd # 对所有目标列生成独热编码 one_hot_result = pd.get_dummies( df, columns=['month', 'day', 'week_day', 'classname_en', 'origin', 'destination'] ) # 将默认的uint8类型转为整数1/0(可选,仅为更直观展示) one_hot_result = one_hot_result.astype(int)
效果说明
pd.get_dummies()会自动为每一列的每个唯一值生成新列,列名格式为原列名_对应值(比如month_1、classname_en_2)- 每行对应位置会用
1标记原始数据中存在该值,0标记不存在,完全匹配你需要的二进制格式 - 所有原始列的唯一值都会被自动转换,无需手动枚举
内容的提问来源于stack exchange,提问作者Sin of Greed
相关产品推荐
相关产品推荐

