[英]Apply a function separately to each row
我写了一个小 function 来生成一个固定长度的随机字符串。 我想将它应用于数据框并创建一个新列,其中该列的每一行都有一个此固定长度的新字符串:
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)
但是,以这种方式应用它会导致为整个列生成一个随机字符串。 任何有关如何应用 function 的帮助,其中每一行都会有一个新生成的字符串,我们将不胜感激!
试试这个:
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)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.