使用 python 生成唯一 ID

Using python to generate unique IDs

我应该如何为一组行分配一个唯一 ID (UID),并在 ID 值突然跳跃的情况下分配一个不同的 UID。例如;将“1”分配给范围从 122 到 125 的 ID 值和“2”的 UID,其中 ID 值范围从 507 到 511 在下面的 table 中。

Name ID UID
T1 122
T1 123
T1 124
T1 125
T1 507
T1 508
T1 509
T1 510
T1 511

老实说,我不知道从哪里开始。

你不需要unique id,只需要group id,组是一组具有连续ID的行值。假设 pandas,你可以使用 shift() 来识别连续的值,然后 cumsum() 自动构建一个 group id:

df['UID'] = (df['ID'] != df['ID'].shift() + 1).cumsum()

它给出了预期的结果:

df
  Name   ID  UID
0   T1  122    1
1   T1  123    1
2   T1  124    1
3   T1  125    1
4   T1  507    2
5   T1  508    2
6   T1  509    2
7   T1  510    2
8   T1  511    2