Python 对每行分别应用一个函数
我编写了一个小函数来生成一个固定长度的随机字符串。我想将其应用于数据框a创建一个新列,其中该列的每一行都有一个固定长度的新字符串:Python 对每行分别应用一个函数,python,python-3.x,pandas,dataframe,Python,Python 3.x,Pandas,Dataframe,我编写了一个小函数来生成一个固定长度的随机字符串。我想将其应用于数据框a创建一个新列,其中该列的每一行都有一个固定长度的新字符串: 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(
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)
请尝试以下方法:
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)