从另一列+ Pandas数据框中的唯一数字索引创建新列

时间:2020-04-21 15:15:05

标签: python pandas dataframe row

我有一个数据框,其中一列的几行具有相同的值:

   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

不能通过向每行添加行索引来完成,因为它们具有不同且不相关的值。

1 个答案:

答案 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