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

Pandas如何为DataFrame每行生成不同的10位随机字符串

错误原因

你当前代码中,等号右侧的随机字符串生成逻辑只会执行1次,得到1个固定的10位随机字符串,pandas会将该值统一填充到整个列的所有行,因此所有行的取值完全一致。

解决方案

方法1:apply逐行生成(中小数据量适用)

逻辑简单易读,适合行数较少的场景:

import random
from string import ascii_letters
import pandas as pd

# 定义固定长度随机英文字符串生成函数
def generate_random_str(length=10):
    return ''.join(random.choice(ascii_letters) for _ in range(length))

# 对每行单独执行生成逻辑,得到独立的随机字符串
df['ff'] = df.apply(lambda x: generate_random_str(), axis=1)

方法2:向量化生成(百万级大表适用)

用numpy实现向量化操作,避免逐行循环的性能开销,大尺寸DataFrame下运行效率远高于apply方案:

import numpy as np
from string import ascii_letters

row_count = len(df)
str_length = 10
char_list = list(ascii_letters)

# 批量生成所有位置的随机字符
random_char_arr = np.array(char_list)[np.random.randint(0, len(char_list), size=(row_count, str_length))]
# 按行拼接字符得到完整随机字符串
df['ff'] = np.apply_along_axis(''.join, 1, random_char_arr)

以上两种方案运行后,df['ff']的每一行都会生成独立的10位随机英文字符串,符合预期输出效果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 18:27:01