데이콘 대회 참여 - 제주 신용카드 데이터 경진대회 Colab with Drive
Page content
공지
- 본 포스트는 필자의 수업을 듣는 사람들을 위해 작성하였습니다.
I. 구글 드라이브와 Colab과 연동
- 구글 드라이브와 Colab과 연동하면 보다 쉽게 데이터에 접근할 수 있다.
- 구글 인증만 하면 된다.
# Google Drive와 마운트
from google.colab import drive
ROOT = '/content/drive'
drive.mount(ROOT)
Go to this URL in a browser: https://accounts.google.com/o/oauth2/auth?client_id=947318989803-6bn6qk8qdgf4n4g3pfee6491hc0brc4i.apps.googleusercontent.com&redirect_uri=urn%3aietf%3awg%3aoauth%3a2.0%3aoob&response_type=code&scope=email%20https%3a%2f%2fwww.googleapis.com%2fauth%2fdocs.test%20https%3a%2f%2fwww.googleapis.com%2fauth%2fdrive%20https%3a%2f%2fwww.googleapis.com%2fauth%2fdrive.photos.readonly%20https%3a%2f%2fwww.googleapis.com%2fauth%2fpeopleapi.readonly
Enter your authorization code:
··········
Mounted at /content/drive
(1) 데이터 다운로드
- 제주 신용카드 데이터를 다운로드 받는다. (회원가입 필수)
- 웹사이트: 제주 신용카드 빅데이터 경진대회
(2) 구글 드라이브에 다운로드 받은 폴더를 올린다.
- 이 때, 경로통일을 위해
Colab Notebooks/python_elice/dacon/data
로 경로 지정을 한다.
# Project Folder 연결
from os.path import join
MY_GOOGLE_DRIVE_PATH = 'My Drive/Colab Notebooks/python_elice/dacon/data'
PROJECT_PATH = join(ROOT, MY_GOOGLE_DRIVE_PATH)
print(PROJECT_PATH)
/content/drive/My Drive/Colab Notebooks/python_elice/dacon/data
- 아래 코드를 반드시 실행시켜야 해당 경로로 이동된다.
%cd "{PROJECT_PATH}"
/content/drive/My Drive/Colab Notebooks/python_elice/dacon/data
- 실제 업로드된 데이터가 있는지 확인한다.
!ls
201901-202003.csv submission.csv
- 만약 에러가 발생이 되면 경로가 잘못 지정된 것이니, 폴더 경로를 재확인한다.
- 경로에러가 발생할 시, 숙련자는 수정이 바로 가능하지만, 비숙련자는 가급적
[런타임 초기화]
를 클릭한 후, 처음부터 다시 실행시키는 것을 추천한다.
(3) 데이터 불러오기
- 지난주간 과제로 내주었던 판다스 데이터를 불러오도록 한다.
- 시간이 다소 소요될 수 있다.
import pandas as pd
train = pd.read_csv("201901-202003.csv")
train.info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 24697792 entries, 0 to 24697791
Data columns (total 12 columns):
# Column Dtype
--- ------ -----
0 REG_YYMM int64
1 CARD_SIDO_NM object
2 CARD_CCG_NM object
3 STD_CLSS_NM object
4 HOM_SIDO_NM object
5 HOM_CCG_NM object
6 AGE object
7 SEX_CTGO_CD int64
8 FLC int64
9 CSTMR_CNT int64
10 AMT int64
11 CNT int64
dtypes: int64(6), object(6)
memory usage: 2.2+ GB
(4) 데이터 샘플링
- 전체 데이터를 시각화 등 사용하면 시각화 시, 다소 느리게 출력될 수 있으니, 연습 차원에서는 가급적 샘플링 기법을 적용해서 데이터를 재정한다.
- 약
1000
개의 데이터만 객체로 저장한다.
sample_train = train.sample(n=1000, random_state=1)
- 원 데이터와 샘플 데이터의 행의 크기를 비교한다.
len(train)
24697792
len(sample_train)
1000
- 물론, 위 샘플을 조금 늘려도 좋긴하지만, 가급적 시각화 코드가 모두 작성이 된 이후에 해보는 것을 추천한다.
II. 과제 - 피벗테이블
- 판다스 패키지를 활용한다.
AMT
는 매출 데이터이다.- 과제 1. 시도별 매출 데이터의 피벗테이블을 작성한다.
- 과제 2. 업종별 매출 데이터의 피벗테이블을 작성한다.
- 마지막 과제 3. 시도별-업종별 매출 데이터의 피벗테이블을 작성한다.
- (옵션), 날짜별로 매출 데이터의 피벗테이블을 작성한다.
III. 과제 - 시각화
- seaborn 패키지를 활용하여 시각화를 작성한다.
- 한글 그래프가 깨져서 나올 것이다. (해결방안 참조: 데이콘 대회 참여 - 10 데이터 시각화)
- 위 코드를 활용해도 좋다.
IV. 분석 Report 작성
- 피벗테이블과 시각화를 근거로 간단하게 분석 보고서를 작성한다.
- 양식은 자유롭다.
- 굳이 참고한다면, 코로나 경제 관련 기사를 참조한다.
- 예) 경기도 코로나19 발생 이후 신용카드 매출액 전년 동기 대비 1조 8,821억 감소