차밍이
[Python] 랜덤한 데이터로 DataFrame 만들기 본문
반응형
목차
블로그 글을 작성하거나, 이런저런 예시나 테스트를 할 때
가끔 랜덤한 데이터를 생성할 필요한 경우가 생깁니다.
한 번 알아놓으면, 매번 귀찮게 찾아보지 않아도 되니 천천히 따라 해보세요.
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))
넘파이를 사용한 Array 데이터가 10배 이상 빠른 것을 확인할 수 있습니다.
반응형
'파이썬 > 기본 문법 정리' 카테고리의 다른 글
[파이썬] Dataframe 대용량 빅데이터 빠르게 읽고 쓰는 방법 (0) | 2023.04.14 |
---|---|
[Python] 파일 옮기기 복사하기 - shutil 모듈 move copy (0) | 2023.02.06 |
[Python] SQL 데이터 Pandas DataFrame으로 불러오기 & 저장하기 (0) | 2023.01.31 |
[Python] SQlite3 DB에 데이터 저장 및 조회 (1) | 2023.01.28 |
Pandas DataFrame 성능 빠르게하기 - apply말고 Vectorization쓰자 (2) | 2023.01.02 |
[Python] 파일 및 폴더 디렉토리 삭제하는 법 총정리 (0) | 2022.12.13 |
[Python] datetime 모듈 날짜 시간 포맷 맞추기와 포맷 코드 종류 (0) | 2022.07.08 |
[Python] Pandas 판다스는 과연 빠른가 ? 속도확인 value_counts, unique, drop_duplicates (0) | 2022.06.29 |
관련된 글 보기
Comments