You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为pandas DataFrame新增一列16位随机字母数字混合字符串

错误原因

原有写法仅执行了一次uuid.uuid4()生成逻辑,得到单个固定字符串后赋值给整列,因此所有行的id取值完全一致。要实现每行对应独立的随机值,需要针对每行单独执行一次随机字符串生成逻辑。

正确实现方案

方案1:列表推导式(性能最优,推荐使用)

import pandas as pd
import uuid

# 初始数据
data = [['Apr 2'], ['Jan 1'], ['Jan 18']] 
df = pd.DataFrame(data, columns = ['date'])

# 生成和DataFrame行数等长的随机字符串列表,直接赋值给新列
df['id'] = [uuid.uuid4().hex.upper()[:16] for _ in range(len(df))]

方案2:apply行级处理(逻辑更直观)

# 对每行单独执行随机字符串生成逻辑
df['id'] = df.apply(lambda _: uuid.uuid4().hex.upper()[:16], axis=1)

两种方案生成的id均为大写字母+数字组成的16位随机字符串,且每行取值相互独立,可满足绝大多数场景的使用需求。

内容的提问来源于stack exchange,提问作者PyBoss

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 02:00:03