随机数到值列
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
我有一个包含列 '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