问题:如何使用Pandas创建随机整数的DataFrame?
我知道如果我使用randn
,
import pandas as pd
import numpy as np
df = pd.DataFrame(np.random.randn(100, 4), columns=list('ABCD'))
给了我我想要的东西,但是带有正态分布的元素。但是,如果我只想要随机整数怎么办?
randint
通过提供范围来工作,但不能像提供数组那样randn
工作。那么我该如何使用某个范围之间的随机整数呢?
回答 0
numpy.random.randint
接受第三个参数(size
),您可以在其中指定输出数组的大小。您可以使用它来创建DataFrame
–
df = pd.DataFrame(np.random.randint(0,100,size=(100, 4)), columns=list('ABCD'))
此处- np.random.randint(0,100,size=(100, 4))
创建一个大小为的输出数组,(100,4)
其中的随机整数元素在之间[0,100)
。
演示-
import numpy as np
import pandas as pd
df = pd.DataFrame(np.random.randint(0,100,size=(100, 4)), columns=list('ABCD'))
生成:
A B C D
0 45 88 44 92
1 62 34 2 86
2 85 65 11 31
3 74 43 42 56
4 90 38 34 93
5 0 94 45 10
6 58 23 23 60
.. .. .. .. ..
回答 1
如今,建议使用NumPy创建随机整数的方法是使用numpy.random.Generator.integers
。(文件)
import numpy as np
import pandas as pd
rng = np.random.default_rng()
df = pd.DataFrame(rng.integers(0, 100, size=(100, 4)), columns=list('ABCD'))
df
----------------------
A B C D
0 58 96 82 24
1 21 3 35 36
2 67 79 22 78
3 81 65 77 94
4 73 6 70 96
... ... ... ... ...
95 76 32 28 51
96 33 68 54 77
97 76 43 57 43
98 34 64 12 57
99 81 77 32 50
100 rows × 4 columns