首页 > 解决方案 > 从另一列创建新列+熊猫数据框中的唯一数字索引

问题描述

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

   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

我想通过在 value 之后添加一个数字索引来重做该列或创建一个具有一个唯一值的新列,因此它会产生如下结果:

   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

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

标签: pythonpandasdataframerow

解决方案


使用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

推荐阅读