繁体   English   中英

将 function 分别应用于每一行

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM