如何遍历熊猫数据框和随机数到现有行的每个元素

时间:2020-10-08 07:42:18

标签: python pandas

我正在尝试遍历pandas数据框,并在特定列的每个元素的末尾添加4个随机数,但是我的函数将相同的随机数附加到每一行。每次迭代行时,它都会生成随机数,但只会添加它生成的前4个随机数,然后将相同的数字附加到所有行中。

def create_cpr(df, symbol):
    for idx, row in df.iterrows():
        number = str(rand.randint(1111, 9999))
        df['SNumber'] = df['DateOfBirth'].str.replace('-', '') + symbol + number
    df = df.drop(['DateOfBirth'], axis=1)
    return df

我希望结果是

  FirstName LastName         Email      SNumber
0     Joe    Jones  jj@gmail.com  **27031968-8923**
1   Alice    Apple  aa@gmail.com  **11121887-5318**

1 个答案:

答案 0 :(得分:2)

您可以在np.random.randint中生成所有随机数,转换为字符串并添加到列中,DataFrame.pop也用于选择和删除列:

def create_cpr(df, symbol):
    r = np.random.randint(1111, 9999, size=len(df)).astype(str)
    df['SNumber'] = df.pop('DateOfBirth').str.replace('-', '') + symbol + r
    return df