Sup*_*dar 6 encoding pandas categorical-data
我有两列:
当我pd.get_dummies()
在上面的 2 列上执行时,只有 'Sex' 被编码到 2 列中。但是 'Class' 不会被 get_dummies 函数转换。
我还希望将“类”转换为 10 个虚拟列,类似于 One Hot Encoding。
这是预期的行为吗?有解决方法吗?
如果您不想转换数据,可以在get_dummies中使用 'columns' 参数。这是快速演练:
这是根据您的描述复制的数据框:
sex_labels = ['male', 'female']
sex_col = [sex_labels[i%2] for i in range(10)]
class_col = [i for i in range(10)]
df = pd.DataFrame({'sex':sex_cols, 'class':class_col})
df.sex = pd.Categorical(df.sex)
Run Code Online (Sandbox Code Playgroud)
数据类型是:
print(df.dtypes)
sex category
class int64
dtype: object
Run Code Online (Sandbox Code Playgroud)
应用 get_dummies:
df = pd.get_dummies(df, columns=['sex', 'class'])
Run Code Online (Sandbox Code Playgroud)
核实:
print(df.columns)
输出:
Index(['sex_female', 'sex_male', 'class_0',
'class_1','class_2','class_3','class_4','class_5',
'class_6','class_7','class_8','class_9'],dtype='object')
Run Code Online (Sandbox Code Playgroud)
根据文档,https://pandas.pydata.org/pandasdocs/stable/reference/api/pandas.get_dummies.html,
如果 columns 为 None,则所有具有对象或类别 dtype 的列都将被转换
这就是为什么你只能在性专栏而不是课堂上看到假人。
希望这可以帮助。快乐学习!
注意:使用 pandas 版本“0.25.2”进行测试
归档时间: |
|
查看次数: |
8104 次 |
最近记录: |