python - 为 Pandas 数据框中的每个重复行附加值/索引
问题描述
我有一个带有一些重复 id 的排序数据框,我想通过附加它们出现在重复列表中的索引来使这些 id 唯一。
原始df:
id val
1 100
1 526
2 434
3 234
4 657
4 44
4 121
注意如何有重复的ids
。
这就是我所希望的:
id val
1 100
1-1 526
2 434
3 234
4 657
4-1 44
4-2 121
也可以:
id val
1-0 100
1-1 526
2-0 434
3-0 234
4-0 657
4-1 44
4-2 121
解决方案
这是一种方法:
df2 = df.copy()
df2['id'] = df['id'].astype(str) + '-' + df.groupby('id').cumcount().astype(str)
id val
0 1-0 100
1 1-1 526
2 2-0 434
3 3-0 234
4 4-0 657
5 4-1 44
6 4-2 121
推荐阅读
- python - Python 与 Julia 自相关
- azure-iot-hub - ESPAsyncWebserver 阻止 Azure IoTHub MQTT 连接
- javascript - 隐藏 Chart.js 行,但在工具提示中显示它的数据
- visual-foxpro - 如何让 Visual FoxPro 表单 (SCT) “忘记”旧的 DBF?
- centreon-api - Centreon中的一组主机汇总状态
- javascript - 如何使用 Javascript 终止无限滚动
- python - 比较每行数据帧的两列
- r - 在数据透视表中使用同一级别的多个字段
- python - 循环遍历嵌套字典值以填充第二个字典 - python
- python - 熊猫数据框中的语法无效