[英]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.