Pandas로 무작위 정수의 DataFrame을 만드는 방법은 무엇입니까?


124

를 사용 randn하면

import pandas as pd
import numpy as np
df = pd.DataFrame(np.random.randn(100, 4), columns=list('ABCD'))

내가 찾고있는 것을 제공하지만 정규 분포의 요소를 사용합니다. 하지만 난 그냥 임의의 정수를 원하면 어떨까요?

randint범위를 제공하여 작동하지만 배열은 randn그렇지 않습니다. 그렇다면 어떤 범위 사이의 임의의 정수로 어떻게 이것을 할 수 있습니까?


그리고 우리가 열을 추가 할 때를 위해 관련 : 팬더가 : 임의의 정수와 안양에 새 열을 생성
SMCI

답변:


185

numpy.random.randintsize출력 배열의 크기를 지정할 수 있는 세 번째 인수 ( )를 허용합니다 . 이것을 사용하여 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
수입품을 포함하거나 라인 번호가없는 복사 붙여 넣기 가능한 샘플을 만들어 주시겠습니까?
Martin Thoma

2
우수한 솔루션에 추가합니다. 열 이름을 순서대로 각각 문자로 지정하려면 df = pd.DataFrame (np.random.randint (0,100, size = (100, 4)), columns = list ([ 'AA' , 'BB', 'C2', 'D2']))
mzakaria

2
@mzakaria [...]는 이미 목록이므로 필요하지 않습니다list([...])
jtlz2

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
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.