我编写了一个小函数来生成固定长度的随机字符串。我想将其应用于数据框并创建一个新列,其中该列的每一行都有一个固定长度的新字符串:
import random, string
def random_string(length):
letters = string.printable
return ''.join(random.choice(letters) for i in range(length))
df['random_string'] = random_string(40)
但是,以这种方式应用它会导致为整个列生成一个随机字符串。任何有关如何将函数应用于每行将具有新生成的字符串的功能的帮助,将不胜感激!
尝试以下方法:
df['random_string'] = [random_string(40) for _ in range(df.shape[0])]
您需要创建随机字符串列表,而不是将列设置为单个随机字符串的标量值。您的代码本质上是在做df['colname'] = 'A'
。
其他方式:
df['random_string'] = df.apply(lambda x: random_string(40), axis=1)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句