python - 将 Pandas 数据帧中的值更改为 one-hot 编码
问题描述
我在分类数据的熊猫中有一个数据框。每列代表一个时间步长,每一行代表一个人。
数据集包含给定时间步长上个人的位置。地点是这样的:1)人在挑人 2)人在家 3)人在工作等。有13个不同的位置
有 720 列代表 2 分钟的时间步长(总共一整天)。
我想将这些分类位置转换为 one-hot 向量。问题是单行可能不包含 13 个不同的变量,因此每一行的编码都不同,而没有针对所有变量的标准规则。
我也尝试手动完成:
old_l = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13]
new_l = [[1,0,0,0,0,0,0,0,0,0,0,0,0], [0,1,0,0,0,0,0,0,0,0,0,0,0], [0,0,1,0,0,0,0,0,0,0,0,0,0], [0,0,0,1,0,0,0,0,0,0,0,0,0],
[0,0,0,0,1,0,0,0,0,0,0,0,0], [0,0,0,0,0,1,0,0,0,0,0,0,0], [0,0,0,0,0,0,1,0,0,0,0,0,0], [0,0,0,0,0,0,0,1,0,0,0,0,0],
[0,0,0,0,0,0,0,0,1,0,0,0,0], [0,0,0,0,0,0,0,0,0,1,0,0,0], [0,0,0,0,0,0,0,0,0,0,1,0,0], [0,0,0,0,0,0,0,0,0,0,0,1,0],
[0,0,0,0,0,0,0,0,0,0,0,0,1]]
df.replace(old_l, new_l,
inplace=True)
但我得到了错误ValueError: cannot assign mismatch length to masked array
有谁知道这样做的方法?
谢谢!
解决方案
推荐阅读
- php - 视图laravel中的别名列名
- coding-style - PhpStorm 代码重新格式化处理分号
- cmake - 显示来自 VcPkg 的 debug_message
- node.js - Angular Universal 使用 Node Express 进行生产
- c# - MS Graph - LINQ 查询字符串 NOT NULL 或 Empty 问题
- javascript - 搜索功能在 React-Redux 应用程序中不起作用
- javascript - 同时使用和标记
- asp.net - web.config 中的 HttpProtocol 设置 - 也适用于 SSL?
- c++ - 使用 `std::equal_range` 和 `boost::transform_iterator`
- c# - C#程序和VS2017中调用错误的目标抛出异常?