On the journey of
[세미나] 넷플릭스 데이터 분석 with 파이썬 라이브러리 (3) 본문
* 이 글은 교내 프로그래밍 동아리 SOLUX의 세미나를 들으며 공부하는 포스팅입니다.
* 강의의 저작권은 세미나를 준비해주신 부원분께 있음을 밝힙니다.
1. 넷플릭스 데이터 결측치 비율 확인
for i in netflix.columns :
missingValueRate = netflix[i].isna().sum() / len(netflix) * 100
if missingValueRate >0 : #결측치 비율이 0보다 크면 출력
print ("{} null rate : {} %".format(i, round(missingValueRate,2)))
#.format : 인자값을 중괄호{}가 지정된 위치에 순차적으로
#round() : 해당 소수점 자리까지 반올림
#.isna() : 결측 값은 True 반환, False 반환
for i in netflix.columns: 칼럼명 리스트의 각 칼럼별로 결측치 비율이 얼마나 되는지 확인하였다.
결과는 위와 같이 나온다.
2. 넷플릭스 데이터 결측치 처리
#.fillna() : 결측치를 특정 값으로 대체하여 처리
#.dropna(axis=0) : 결측치가 있는 행 전체 제거
#원본 객체 변경하려면 inplace = True 옵션 추가하면 됨
netflix['director'].fillna('No Data', inplace = True)
netflix['cast'].fillna('No Data', inplace = True)
netflix['country'].fillna('No Data', inplace = True)
: .fillna (na: not available; 결측치) 옵션으로 채워보자. 위 코드는 결측치를 'No Data'라는 문구로 채우는 것을 의미한다.
실제로 저 옵션을 적용한 다음 netflix 데이터를 확인해보면
전부 한눈에 볼 수는 없지만, 간간이 No Data로 채워진 셀들이 있음을 확인할 수는 있다.
혹은 다른 방식으로 확인할 수도 있다 - .isnull().sum() 옵션 및 .isna().sum()을 활용
print(netflix.isnull().sum())
print(netflix.isna().sum())
.isnull().sum() : 각 컬럼별 결측치 개수를 반환
.isnull() : 결측값은 True, 그 외는 False
.isna() : 결측값은 True, 그 외는 False
3. Feature Engineering(피처 엔지니어링)
피처 엔지니어링이란 기존에 존재하는 변수를 활용하여 새로운 변수를 추가로 생성하는 과정이다.
이번 넷플릭스 데이터의 경우 date_added(프로그램이 업로드된 날짜) 변수를 활용해 year_added(업로드한 연도)와 month_added(업로드한 월) 변수를 생성해보자.
활용할 패키지들
.to_datetime() : 시간 형식의 object 타입의 값들을 datetime 타입으로 변환
.dt.year : datetime에서 연도 정보 추출
.dt.month : datetime에서 월 정보 추출
실제로 코랩에서 변수를 생성해보자.
#날짜 변수 값들을 datetime 타입으로 변환
netflix["date_added"] = pd.to_datetime(netflix["date_added"])
#year_added 변수를 생성하여 개봉한 연도 정보 저장
netflix['year_added'] = netflix['date_added'].dt.year
#month_added 변수를 생성해 개봉한 월 정보 저장
netflix['month_added'] = netflix['date_added'].dt.month
4. 인사이트 도출(데이터 시각화)
1. 파이 차트 시각화(영화 - TV쇼 비율 비교)
각 옵션은 위와 같다. 이를 기반으로 그린 pie chart를 확인해보면 (plt.pie: 파이플롯이라는 것)
ratio = netflix['type'].value_counts() #영화 -TVshow 개수
plt.pie(ratio,labels = ['Movie','TV show'], explode = [0.05,0.05],
autopct = '%0.f%%',colors = ['#b20710','#221f1f'],startangle=100, shadow = True)
이제 여기다가 제목을 달아주고, 화면에 파이차트가 보이도록 해보자.
ratio = netflix['type'].value_counts() #영화 -TVshow 개수
plt.pie(ratio,labels = ['Movie','TV show'], explode = [0.05,0.05],
autopct = '%0.f%%',colors = ['#b20710','#221f1f'],startangle=100, shadow = True)
plt.title("The Ratio of Movies & TV Shows", fontfamily = 'serif', fontsize = 15, fontweight = 'bold')
#파이차트 제목, 글꼴은 serif 체, 글씨 크기는 15, 볼드체
plt.show() #화면에 파이차트 표시
결과적으로 위와 같은 그래프가 완성된다.
2. 막대 그래프 시각화(연도별 개봉된 영화와 TV 쇼 수치)
#연도별 개봉된 영화와 TV show의 개수를 막대 그래프로 시각화
sns.countplot(data=netflix, x = 'year_added', hue = 'type', palette=['#b20710','#221f1f'])
실제로 시각화한 결과는 아래와 같다. 이때, hue = 'type'는 특정 열 데이터로 색상을 구분해 출력되게끔 하는 기능이다.
여기다가 제목을 붙여보자. 1에서처럼 plt.title('제목명') 해주면 된다!
sns.countplot(data=netflix,x = 'year_added', hue = 'type', palette= ['#b20710','#221f1f'])
plt.title('Movies & TV shows added by year', fontfamily = 'serif',fontsize = 15, fontweight = 'bold')
plt.show()
* 주의할 점은 여기서 title, show 옵션 2개만 새로운 셀에다 입력하면 안 된다는 점... 내용이 없는 그래프만 완성된다.
5. 파일 다운로드
문서작업을 하면 '다른 이름으로 저장'을 통해 창을 닫더라도, 언제든 열어볼 수 있다. ipnyb(python)도 마찬가지!
1. 이름을 원하는 이름으로 바꾸려면 코랩 옆 Untitled를 클릭해서 원하는 이름을 입력하면 된다.
나는 넷플릭스데이터분석이란 이름으로 변경했다.
2. 언제든 colab 상에 업로드하면 코드 및 실행 결과를 확인해볼 수 있도록 다운받자. ipnyb와 .py 파일 중 선택할 수 있으며, 나는 파일 - 다운로드 - .ipnyb 다운로드를 통해 다운받았다.
'학교 프로그램 > SOLUX' 카테고리의 다른 글
[3차 세미나] 배워두면 개발할 때 잘 써먹는 Git 씹어먹기 (3) (3) | 2023.05.30 |
---|---|
[3차 세미나] 배워두면 개발할 때 잘 써먹는 Git 씹어먹기 (2) (2) | 2023.05.30 |
[3차 세미나] 배워두면 개발할 때 잘 써먹는 Git 씹어먹기 (1) (0) | 2023.05.29 |
[세미나] 넷플릭스 데이터 분석 with 파이썬 라이브러리 (2) (0) | 2023.05.02 |
[세미나] 넷플릭스 데이터분석 with 파이썬 라이브러리(1) (0) | 2023.05.02 |