차밍이

[Python] 랜덤한 데이터로 DataFrame 만들기 본문

파이썬/기본 문법 정리

[Python] 랜덤한 데이터로 DataFrame 만들기

2023. 1. 26. 20:43
반응형

목차

    블로그 글을 작성하거나, 이런저런 예시나 테스트를 할 때
    가끔 랜덤한 데이터를 생성할 필요한 경우가 생깁니다.
    한 번 알아놓으면, 매번 귀찮게 찾아보지 않아도 되니 천천히 따라 해보세요.

    Random 데이터로 DataFrame 만들기

    바쁜 사람들을 위해 결론 소스코드만 먼저 발사합니다.

    import pandas as pd
    import numpy as np
    
    df = pd.DataFrame(np.random.randint(0,100,size=(100, 5)), columns=list("abcde"))
    df

    0~99까지의 랜덤한 정수로 이루어진
    100행 5열짜리 데이터프레임 생성완료

    아래는 설명하겠습니다ㅎ

     

    랜덤한 숫자 뽑기

    넘파이 모듈을 사용해서 랜덤한 숫자 뽑기

    import numpy as np
    
    np.random.randint(범위 시작, 범위 끝)
    
    np.random.randint(0,100)

    np.random.randint(0,100) 는 0에서 99까지의 숫자 중 랜덤하게 하나의 정수 값을 출력합니다.

     

    랜덤한 숫자 행렬 만들기

    np.random.randint에 size 옵션을 통해 원하는 size의 numpy array 행렬을 만들 수 있습니다.

    아래 소스 코드와 같이 하면 100행 5열의 랜덤한 숫자 행렬을 만들 수 있습니다.

    np.random.randint(0,100,size=(100, 5))

     

    랜덤한 숫자로 데이터프레임 만들기

    위에서 얻은 무작위 숫자로 이루어진 넘파이 배열을 pd.DataFrame으로 덮어주기만 하면 완성입니다.

    df = pd.DataFrame(np.random.randint(0,100,size=(100, 5)))
    df

     

    Numpy를 Base로 사용한 이유

    파이썬 내장 Random 모듈을 가져와서 사용해도 됩니다.
    그러면 소스코드는 아래와 같이 되겠지요.

    import random
    
    random.randrange(0, 100)
    
    data = [[random.randrange(0, 100) for _ in range(5)] for _ in range(100)]
    
    df = pd.DataFrame(data)

    random 모듈을 사용해서 데이터를 만들어도 되지만, 최종적으로 DataFrame 형태의 결과물을 얻을 것이므로 Numpy를 사용합니다.
    Numpy와 Pandas는 Array 배열을 사용하니까 서로 호환이 잘돼서 더 빠르기 때문입니다.

     

    속도 비교

    똑같이 100행 5열 데이터를 만들어서 DataFrame으로 만드는 작업만 속도를 측정해 보아도 쉽게 알 수 있습니다.

    data = [[random.randrange(0, 100) for _ in range(5)] for _ in range(100)]
    data_np = np.random.randint(0,100,size=(100, 5))

    Random 모듈과 Numpy 속도 비교

    넘파이를 사용한 Array 데이터가 10배 이상 빠른 것을 확인할 수 있습니다.

     

    반응형

    관련된 글 보기

    Comments