目标:为构建的字段中的每一行创建唯一且随机的数字' Birth'。
import pandas as pd
import numpy as np
df1=pd.DataFrame.from_items([('A', [1, 2, 3]), ('B', [4, 5, 6])])
df1['Birth']= random.randrange(1905,1995, len(df1))
df1
上面的代码为所有行生成一个随机数,如下所示:
A B Birth
0 1 4 1974
1 2 5 1974
2 3 6 1974
我对以下内容感兴趣:
A B Birth
0 1 4 1904
1 2 5 1978
2 3 6 1934
任何帮助都将不胜感激。
答案 0 :(得分:5)
使用numpy
import numpy as np
df['Birth'] = np.random.randint(1905,1995, len(df))
答案 1 :(得分:1)
import pandas as pd
import numpy as np
import random
df1=pd.DataFrame.from_items([('A', [1, 2, 3]), ('B', [4, 5, 6])])
尝试:
df1['Birth'] = df1.apply(lambda x: random.randrange(1905,1995, len(df1)),axis=1)
输出:
A B Birth
0 1 4 1980
1 2 5 1947
2 3 6 1965
您正在做的与创建静态变量相同,并将其用于df中的所有值,如下所示:
a_variable = random.randrange(1905,1995, len(df1))
#a_variable = 1974
df1['Birth'] = a_variable