[英]Create dummy coded columns for a column and concatenate it to the dataset
我正在处理有关手机流失率的数据集。 我正在尝试为形状为 3333 行 × 20 列的数据集中的状态缩写列创建虚拟代码。 我需要省略状态虚拟编码列之一作为“参考”列用于建模。 我认为应该发生的是,应该为每一行创建一个列,并在与新创建的虚拟列对应的行中放置一个 1。 我目前在每一行中都得到 0,除了第一行全是 1。 我需要以某种方式获取虚拟变量以在每行的适当列中包含一个标记。 我还认为我应该将列合并为唯一的列(在这种情况下,每个州都有一个),但我不确定这是否会与虚拟编码的点混淆?
我目前有以下代码:
1. 为 'state' 创建虚拟变量并排除第一个虚拟列:
churn_dummies = pd.get_dummies(churn, columns='state', prefix='st').iloc[:,20:]
这将返回一个 3333x3332 的数据帧。
st_OH st_NJ st_OH st_OK st_AL st_MA st_MO st_LA st_WV st_IN st_RI
0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0
1 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
2 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
3 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
4 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
这个结果似乎在创建的整个巨大数据帧中继续存在,从抽查来看,这些行似乎不包含用相应列标记的适当 1。 我一直在使用以下熊猫文档: https : //pandas.pydata.org/pandas-docs/stable/reference/api/pandas.get_dummies.html
2. 然后将列连接到数据帧上:
churn = pd.concat([churn, churn_dummies], axis=1)
我想通了这个问题。 输入列参数时,引用的列名称需要在名称 ['state'] 周围加上方括号,以便对该列调用 get_dummies 方法。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.