python - 按日期问题分组的分类变量的二进制矢量化编码
问题描述
我在尝试以某种二进制编码对其进行矢量化时遇到问题,但在多行时会聚合(因为分类变量的变体是非排他的),但要避免将其与其他日期合并。(蟒蛇和熊猫)
假设这是数据
id1 | id2 | 类型 | 月测量 |
---|---|---|---|
105 | 50 | 生长 | 04-2020 |
105 | 50 | 前进 | 04-2020 |
44 | 29 | 前进 | 04-2020 |
105 | 50 | 撤退 | 05-2020 |
105 | 50 | 缩小 | 05-2020 |
它必须像这样结束
id1 | id2 | 生长 | 缩小 | 前进 | 撤退 | 月测量 |
---|---|---|---|---|---|---|
105 | 50 | 1 | 0 | 1 | 0 | 04-2020 |
44 | 29 | 0 | 0 | 1 | 0 | 04-2020 |
105 | 50 | 0 | 1 | 0 | 1 | 05-2020 |
我一直在尝试各种转换、lambda 函数、pandas get_dummies
,并尝试将它们按 2 个 id 和日期分组,但我找不到方法。
希望我们能解决!提前致谢!:)
解决方案
这是crosstab
:
pd.crosstab([df['id1'],df['id2'],df['month.measure']], df['type']).reset_index()
输出:
type id1 id2 month.measure advancing growing retreating shrinking
0 44 29 04-2020 1 0 0 0
1 105 50 04-2020 1 1 0 0
2 105 50 05-2020 0 0 1 1
推荐阅读
- php - 错误迁移:无法声明类 X,因为该名称已在使用中
- python - 如何使用 Scrapy Crawler 和 Splash 来抓取 Javascript 页面
- android - 自定义视图不遵守约束布局中的约束
- java - H2中的Spring @Transactional用于插入语句
- android - 错误:Andriod 中表达式 save = canvas.save(@Saveflags save) 的非法开始
- amazon-web-services - DynamoDB put_item 的预签名 URL
- symfony - Symfony 约束验证不起作用,组被忽略
- javascript - IE11 对象不支持属性或方法“indexOf”(但它不是对象,在其他浏览器中也可以使用)
- angular - 使用 HttpClient 和 HttpClient 的 Angular Http 完整响应
- flutter - 如何使用 navigator.push 导航到特定选项卡