티스토리 뷰
이틀간 《파이썬 라이브러리를 활용한 데이터 분석》 14장의 두 번째 예제를 필사해보았다.
MovieLens 사용자로부터 수집한 영화 평점 데이터를 활용해 머신러닝 알고리즘에 활용할 데이터를 가공할 수 있다.
import pandas as pd
pd.options.display.max_rows = 10
최대로 출력되는 열의 개수를 10개로 설정한다.
unames = ['user_id', 'gender', 'age', 'occupation', 'zip']
users = pd.read_table('path', sep = '::', header = None, names = unames)
(path에는 movielens 데이터 중 users.dat가 들어간다) 원본 코드는 이것인데, 이번에도 에러가 발생했다.
::를 구분자로 인식하는 것이 지원되지 않는다는 이야기인가보다. 두 번째 줄의 닫는 괄호 전 맨 마지막에 engine='python'을 덧붙이는 것으로 해결.
같은 방식으로 ratings.dat와 movies.dat도 불러와준다.
rnames = ['user_id', 'movie_id', 'rating', 'timestamp']
ratings = pd.read_table('path', sep='::', header=None, name = rnames, engine='python')
mnames = ['movie_id', 'title', 'rating', 'genres']
movies = pd.read_table('path', sep='::', header=None, name = mnames, engine='python')
users[:5]
ratings[:5]
movies[:5]
unames, rnames, mnames로 세 개의 .dat 파일을 모두 불러온 다음 앞부분 5개의 row를 확인해본다.
각각 사용자 데이터, 유저가 각 영화에 매긴 평점, 영화 id에 대응하는 타이틀과 장르를 확인할 수 있다.
세 개의 테이블을 병합하기 위해서는 두 개를 먼저 병합한 다음 나머지 하나를 병합해야 한다.
pandas를 활용하면 병합하려는 테이블들에 중복되는 컬럼이 있을 경우, 그 컬럼의 이름은 키로 사용할 수 있다.
data = pd.merge(pd.merge(ratings, users), movies)
data
위에서 출력할 줄의 최댓값을 10으로 설정했기 때문에 data를 병합한 다음 확인해봐도 다음처럼 10줄만 출력된다.
data.iloc[0] #data의 0번째 row를 출력
데이터를 확인하는 습관을 들이자
mean_ratings = data.pivot_table('rating', index = 'title', columns = 'gender', aggfunc='mean')
pivot_table method를 통해 gender에 따른 영화의 평균 평점을 구할 수 있다.
앞의 다섯 줄만 잘라 보면 이렇게 나온다.
~28일에 한 부분은 내일 계속
'공부 > Data Science' 카테고리의 다른 글
Object Detection: YOLO(1) (0) | 2022.02.10 |
---|---|
28회 ADsP: 국가공인 데이터분석 준전문가에 합격했다! (0) | 2021.04.09 |
R Computing DAY 2: 데이터의 입력과 저장 (0) | 2021.04.01 |
20210205 오늘공부: '2020 데이터 시각화로 보는 여성의 삶' (2) (0) | 2021.01.05 |
20210104 오늘공부: '2020 데이터 시각화로 보는 여성의 삶' (1) (0) | 2021.01.05 |
- Total
- Today
- Yesterday
- github
- ai부트캠프
- Notion2Tistory
- 빅분기합격
- data annotation
- 이자포스터디
- Til
- 자격증
- 자버
- 빅분기후기
- 데이터준전문가합격후기
- 코테공부
- 데이터분석
- ADsP
- 빅데이터
- 취업준비
- ADsP합격후기
- 코드스테이츠
- 이력서
- 깃허브
- 커리어코칭
- 빅분기
- 데이터준전문가
- 인공지능
- Kaggle
- todayIlearned
- 데이터과학
- 빅데이터분석기사
- 개발자포트폴리오
- googlecolab
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |