使用python生成唯一ID

发布于 2025-01-17 10:55:44 字数 665 浏览 3 评论 0原文

我应该如何将唯一的ID(UID)分配给一组行和不同的UID,而ID值突然增加。例如;将“ 1”分配给ID值范围为122至125,而“ 2”的UID在下表中为507到511。

名称IDUID
T1122
T1123
T1124
T1125
T1507
T1508
T1509
T1510
T1511

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

How should I assign a unique ID (UID) to a group of rows and a different UID where there is a sudden jump in ID values. For example; assign "1" to ID values ranging from 122 to 125 and a UID of "2" where ID values range from 507 to 511 in the table below.

NameIDUID
T1122
T1123
T1124
T1125
T1507
T1508
T1509
T1510
T1511

To be honest i don't know where to start from.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

污味仙女 2025-01-24 10:55:44

您不需要 unique id,而只是 group iD,其中一个组是一组具有连续ID值的行。假设熊猫,您可以使用shift()识别连续值,然后cumsum()自动构建组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

You do not want an unique id, but just a group id, where a group is a set of rows with consecutive ID values. Assuming pandas, you could use shift() to identify consecutive values, and then cumsum() to automatically build a group id:

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

It gives as expected:

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
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文