如何创建具有随机数列的数据框,每个列具有不同的范围?

时间:2018-03-02 23:04:39

标签: python pandas numpy

我正在寻找一种方法来创建一个包含3列和3行的随机数据帧,但是第一列的随机数应该在[1:5]的范围内,第二列的随机数应该在[1:5]中。 :8]和[4:10]中的第三个。

我需要的例子:

   A  B  C
0  4  3  9
1  1  4  10
2  4  8  4

我知道如何使用以下方法创建随机数据框:

df = pd.DataFrame(np.random.randint(1,10,size=(3, 3)))

但我无法找到将这些范围添加为每列条件的方法。我可以生成三个随机数,然后将它们一起添加为数据帧,但这不是我想要的。

任何帮助?

1 个答案:

答案 0 :(得分:2)

n = 3
df = pd.DataFrame(dict(
    A=np.random.randint(1, 6, size=n),
    B=np.random.randint(1, 9, size=n),
    C=np.random.randint(4, 11, size=n)
))

df

   A  B  C
0  3  5  6
1  1  7  6
2  1  1  4

或者

df = pd.DataFrame(
    np.random.rand(3, 3) * [5, 8, 7] + [1, 1, 4],
    columns=list('ABC')
).astype(int)

df

   A  B   C
0  3  6  10
1  3  5   7
2  4  6   7