我有一个排序的Dataframe,其中包含一些重复的ids,我希望通过附加索引来使这些ids具有唯一性,因为它们出现在重复列表中。
原始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发布于 2020-01-05 05:12:38
下面是一种方法:
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发布于 2020-01-05 05:11:24
df['id'] = df.groupby('id')['id'].transform(lambda x: ['{}-{}'.format(v, i) if i else v for i, v in enumerate(x)])
print(df)打印:
id val
0 1 100
1 1-1 526
2 2 434
3 3 234
4 4 657
5 4-1 44
6 4-2 121https://stackoverflow.com/questions/59594731
复制相似问题