Python에서는 랜덤 데이터를 생성하거나 가짜 데이터를 만들어내는 다양한 방법이 있습니다. 이 글에서는 Python의 random 모듈과 Faker 라이브러리를 활용하여 랜덤 데이터와 가짜 데이터를 생성하는 방법을 정리합니다.
random 모듈random 모듈은 난수(랜덤 숫자)를 생성하거나 리스트에서 무작위로 값을 선택하는 데 유용합니다.
randint() 함수randint(a, b) 함수는 지정된 범위 [a, b] 사이의 정수를 반환합니다.
import random as rd
# 랜덤 숫자 생성
d.rd.seed(42) # 시드 값 설정으로 동일한 랜덤 결과를 재현 가능
for _ in range(5):
print(rd.randint(0, 10))
출력 예시:
10
1
0
4
3
리스트에서 랜덤하게 값을 선택하려면 choice()나 choices() 함수를 사용합니다.
# 랜덤 성적 생성
grade = [l for l in 'ABCDF']
# 랜덤 선택 방법 1: randint 이용
for _ in range(5):
print(grade[rd.randint(0, len(grade) - 1)]) # 인덱스로 접근
# 랜덤 선택 방법 2: choice 이용
for _ in range(5):
print(rd.choice(grade)) # 리스트에서 직접 선택
# 여러 값을 선택
data = [rd.choice(grade) for _ in range(5)]
data = rd.choices(grade, k=5) # choices는 k로 여러 개 선택 가능
print(data)
출력 예시:
C
F
A
B
D
['B', 'A', 'C', 'D', 'F']
Faker는 가짜 데이터를 쉽게 생성할 수 있는 강력한 라이브러리입니다. 이름, 직업, 주소 등 다양한 데이터를 생성할 수 있습니다.
Faker를 사용하려면 먼저 설치가 필요합니다:
%pip install Faker
Faker 객체를 생성하고, 원하는 데이터 타입을 호출하면 됩니다.
from faker import Faker
# Faker 객체 생성
fake = Faker('ko_KR') # 한국어 로케일 설정
Faker.seed(42) # 시드 값 설정
# 랜덤 데이터 생성
names = [fake.name() for _ in range(10)] # 랜덤 이름
first_names = [fake.first_name() for _ in range(10)] # 랜덤 이름 (성 제외)
jobs = [fake.job() for _ in range(10)] # 랜덤 직업
# 결과 출력
print(names)
print(first_names)
print(jobs)
출력 예시:
['이민준', '박지훈', '김지훈', '이도윤', '김서준', '박준호', '최민재', '정서준', '한도윤', '박민준']
['민준', '지훈', '지훈', '도윤', '서준', '준호', '민재', '서준', '도윤', '민준']
['데이터 분석가', '웹 개발자', '시스템 관리자', '소프트웨어 엔지니어', '마케팅 전문가', '디자이너', 'DB 관리자', '프로젝트 매니저', 'AI 연구원', '네트워크 엔지니어']
random 모듈은 간단한 난수 생성과 리스트 랜덤 선택에 유용합니다.Faker는 복잡한 가짜 데이터를 생성할 때 매우 편리합니다.seed 값을 설정하면 동일한 랜덤 데이터를 재현할 수 있습니다.다음은 위에서 다룬 모든 내용을 하나의 코드로 통합한 예제입니다:
import random as rd
from faker import Faker
# random 모듈 사용
rd.seed(42)
for _ in range(5):
print(rd.randint(0, 10))
grade = [l for l in 'ABCDF']
for _ in range(5):
print(rd.choice(grade))
data = rd.choices(grade, k=5)
print(data)
# Faker 사용
fake = Faker('ko_KR')
Faker.seed(42)
names = [fake.name() for _ in range(10)]
first_names = [fake.first_name() for _ in range(10)]
jobs = [fake.job() for _ in range(10)]
print(names)
print(first_names)
print(jobs)
이 글을 통해 random 모듈과 Faker 라이브러리를 활용한 랜덤 데이터 생성 방법을 연습했습니다.