随机数到值列

Random number to values columns

我有一个包含列 'group' 和 'postcode' 的大型数据集。下面给出了 df 的示例:

Age
65+
16-25
16-25
26-39
40-64
65+
26-39
40-64
16-25
65+

我试图用下面的代码影响每一行值的随机值

df['AGE'] = df['AGE'].replace({'65+': randint(65,100), '16-25': randint(16,25),
                               '26-39': randint(26,39), '40-64': randint(40,64)})

但我得到的是每个值的四个随机值:{'65+', '16-25', '26-39', '40-64'} 像这样:

Age
73
23
23
34
42
73
34
42
23
73

有人可以通过更正我的代码来帮助我找出我做错了什么吗?

您只生成了一次随机数,只是替换了您的列值。

如果你想为每行一个不同的随机数,你需要为每一行调用randint。尝试:

>>> df['AGE'].apply(lambda x: randint(int(x[:2]), 100 if x[-1]=="+" else int(x[-2:])))
0    82
1    23
2    18
3    27
4    45
5    83
6    38
7    64
8    17
9    93
Name: AGE, dtype: int64