首页 > 解决方案 > 为 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

标签: pythonpandasdataframeduplicates

解决方案


这是一种方法:

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

推荐阅读