重置附加数据框的 'Id' 值

Reset 'Id' value of appended Dataframe

我附加了多个数据框以形成单个数据框。每个数据框都有多行分配了特定的 ID。附加后,大数据框有多个具有相同 ID 的行。想分配新的 ID。

当前数据帧:

Index   name     groupid
  0      Abc       0
  1      cvb       0
  2      sdf       0
  3      ksh       1
  4      kjl       1
  5      lmj       2
  6      hyb       2
  0      khf       0
  1      uyt       0
  2      tre       1
  3      awe       1
  4      uys       2
  5      asq       2
  6      lsx       2

期望的输出:

Index   name     groupid    new_id
  0      Abc       0          0 
  1      cvb       0          0
  2      sdf       0          0
  3      ksh       1          1
  4      kjl       1          1
  5      lmj       2          2
  6      hyb       2          2
  7      khf       0          3  
  8      uyt       0          3
  9      tre       1          4
  10     awe       1          4
  11     uys       2          5
  12     asq       2          5
  13     lsx       2          5

您将不得不使用 groupby 的稍微修改版本:

df['new_id'] = df.groupby(df['groupid'].ne(df['groupid'].shift()).cumsum(), sort=False)
                          .ngroup())

输出为:

    Index name  groupid  new_id
0       0  Abc        0       0
1       1  cvb        0       0
2       2  sdf        0       0
3       3  ksh        1       1
4       4  kjl        1       1
5       5  lmj        2       2
6       6  hyb        2       2
7       0  khf        0       3
8       1  uyt        0       3
9       2  tre        1       4
10      3  awe        1       4
11      4  uys        2       5
12      5  asq        2       5
13      6  lsx        2       5

参考