簡體   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