繁体   English   中英

使用Python如何在Pandas数据帧中的每一行的范围内生成一个随机数?

[英]Using Python how do I generate a random number within a range for each row in Pandas dataframe?

目标:为构造字段“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

任何帮助,将不胜感激。

使用numpy

import numpy as np
df['Birth'] = np.random.randint(1905,1995, len(df))
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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM