如何用 Pandas 创建一个随机整数的 DataFrame?
How to create a DataFrame of random integers with Pandas?
我知道如果我使用 randn
,
import pandas as pd
import numpy as np
df = pd.DataFrame(np.random.randn(100, 4), columns=list('ABCD'))
给了我正在寻找的东西,但元素来自正态分布。但是,如果我只想要随机整数怎么办?
randint
通过提供范围来工作,但不像 randn
那样提供数组。那么我该如何使用某个范围内的随机整数来做到这一点呢?
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
.. .. .. .. ..
最近推荐使用 NumPy 创建随机整数的方法是使用 numpy.random.Generator.integers
。 (documentation)
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
我知道如果我使用 randn
,
import pandas as pd
import numpy as np
df = pd.DataFrame(np.random.randn(100, 4), columns=list('ABCD'))
给了我正在寻找的东西,但元素来自正态分布。但是,如果我只想要随机整数怎么办?
randint
通过提供范围来工作,但不像 randn
那样提供数组。那么我该如何使用某个范围内的随机整数来做到这一点呢?
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
.. .. .. .. ..
最近推荐使用 NumPy 创建随机整数的方法是使用 numpy.random.Generator.integers
。 (documentation)
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