python - 训练和测试集上的虚拟变量导致不同大小的数据帧输出
问题描述
我正在使用 onehot 对我的数据帧(训练和测试)进行编码pd.get_dummies()
。但是,两个数据框都相当大,我注意到它输出不同的列大小。271 vs 290。这是由于某些定性变量在一个数据框中具有值,而在另一个数据框中没有。
当这些变量存在于另一个数据框中时,是否有一个命令可以用来pd.get_dummies
确保我得到一个带有 0 的空列?
解决方案
当您拥有数据框并想将对象转换为虚拟变量时,请在使用前不要拆分它 get_dummies
df = pd.get_dummies(df)
train = df[cond]
test = df.drop(train.index)
修复您的代码
df = pd.get_dummies(pd.concat([train , test]))
train = df[df.index.isin(train.index)]
test = df.drop(train.index)
推荐阅读
- python - 在 python 脚本中,检查 str 格式的 C 代码的语法正确性
- apache-spark - spark 结构化流中的度量来获取总批处理时间
- xquery - 如何计算具有相同日期的子项的节点
- html - 删除特定
- treeview - 如何在 Vuetify 中使用按钮折叠 v-treeview?
- oracle - Oracle 选择查询不获取值为空的记录
- node.js - Sequelize "raw = true" 用点更改 json 模型属性名称
- javascript - Leaflet.draw 发出事件以停止绘图
- sparql - SPARQL:排除 COUNT 中的双重资源
- docker - Kubernetes 拉取镜像 k8s.gcr.io 失败