我有一个数据框,其中一列的几行具有相同的值:
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
我想通过在值后添加数字索引来重做该列或创建一个具有唯一值的新列,
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
此不能通过向每行添加行索引来完成,因为它们具有不同且不相关的值。
答案 0 :(得分:3)
使用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