python - 从另一列创建新列+熊猫数据框中的唯一数字索引
问题描述
我有一个数据框,其中一列的几行具有相同的值:
unique_code 0
0 p01_PAR_1 zertara
1 p01_PAR_1 atera
2 p01_PAR_1 da
3 p01_MOT_1 ez
4 p01_MOT_1 dakit
我想通过在 value 之后添加一个数字索引来重做该列或创建一个具有一个唯一值的新列,因此它会产生如下结果:
unique_code 0
0 p01_PAR_1_1 zertara
1 p01_PAR_1_2 atera
2 p01_PAR_1_3 da
3 p01_MOT_1_1 ez
4 p01_MOT_1_2 dakit
这不能通过将行索引添加到每一行来完成,因为它们具有不同且不相关的值。
解决方案
使用GroupBy.cumcount
然后将其添加为字符串:
df['unique_code'] = (
df['unique_code'] +
'_' +
df.groupby('unique_code').cumcount().add(1).astype(str)
)
unique_code 0
0 p01_PAR_1_1 zertara
1 p01_PAR_1_2 atera
2 p01_PAR_1_3 da
3 p01_MOT_1_1 ez
4 p01_MOT_1_2 dakit
推荐阅读
- java - Collections.shuffle 对于 SimClock Random 值不能按预期工作
- android - 使用 Flutter 的 Wifi 细节
- java - 关于带字符数组的 for 循环的基本问题(Java)
- vue.js - 如何使用 axios.post 发布选择输入选项值?
- c# - ModelBinded IList 项为空 OnPost
- reactjs - 上传到 s3 时反应 CORS 被阻止
- python-3.x - 引发 ValueError 并一步登录
- reactjs - 在状态下编辑数组会添加一个新元素而不是更新现有的(反应 JS)
- google-cloud-firestore - Firestore(Angularfire)“合并”或在另一个文档中引用一个文档
- laravel - 如何在 Laravel 中创建额外的可验证模型