首页 > 解决方案 > 如何为熊猫数据框添加唯一的字母数字 ID?

问题描述

我需要一个解决方案,我可以为我的数据框生成唯一的字母数字 id 列。即使我以后运行脚本,我也需要保持相同的 ID。

    Name
    Sam
    Pray
    Brad

我可以根据这篇文章生成 id,但我需要 5 位数字的 aplhanumeric 值,这些值将始终保持不变。

这是所需的输出:

    Name         ID
    Sam          X25TR
    Peter        WE558
    Pepe         TR589

标签: pythonpandasunique

解决方案


此函数生成具有给定长度的随机字母数字字符串:

import math
import secrets


def random_alphanum(length: int) -> str:
        text = secrets.token_hex(nbytes=math.ceil(length / 2))
        isEven = length % 2 == 0
        return text if isEven else text[1:]

df['ID'] == random_alphanum(5)

应用于整行:

df2['ID'] = df2.apply(lambda x: random_alphanum(5), axis=1, result_type="expand")

推荐阅读