
안녕하세요?
삼성SDS Brightics 서포터즈 김혜현입니다 😊
여러분 마지막 개인 프로젝트인
'금융 데이터 분석' 기억하시나요~? ❗️
'Brightics Studio로 시작하는
금융 데이터 분석'을 읽으며 포스팅을 진행하고 있는데요 ~
지난 포스팅에서는
모의DB를 다운받는 과정과 실제로 데이터를 제공받는 모습까지
보여드리며 포스팅을 마무리 하였습니다.
하지만 해당 파일은 크기도 너무 크고
신용정보원에서 포스팅을 할 때에 주의해달라는 부탁을 받아
차라리 샘플 데이터를 사용하는 것이 좋을 것 같다는 결론을 내렸습니다 :)
| Step1. 데이터 다운받기
CreDB사이트의 자료실에서
'개인신용 모의DB 샘플데이터'를 다운받아 줍니다 :)
제가 다운받을 당시에는
파일에 문제가 있는지 열리지 않아 메일을 보냈더니
2시간내로 다운로드 문제 해결 및 메일로 파일을 보내 주셨습니다 !!
저번에도 느낀거지만 정말 일처리가 빠른것 같다고 느꼈어요 ,,, !!!
| Step2. 데이터 살펴보기
엑셀 파일을 열어보면 다음과 같은 화면이 뜹니다 :)
각각의 데이터들이 의미하는 것이 무엇인지 살펴볼까요 ?
엑셀 파일에 시트로 나누어져 있는 파일을
아래와 같이 각각 따로 저장해주었습니다 !
이후 각 파일의 2행은 컬럼의 이름을 해석하는 역할이기에
필요없다고 판단하여 제거해주었습니다.
| Step3. 데이터 전처리(대출현황 파생변수 생성)
1. [ Load ] 함수
[ Load ] 함수로 데이터를 불러와줍니다.
이때 SCTR_CD, LN_CD_1, LN_CD_2는 코드값이므로
String 타입으로 불러와줍니다 :)
2. [ Query Executor ] 함수
이 중 2017년 12월의 데이터만 가져오면서
차주, 업권을 기준으로 대출금액의 합과 건수를 계산해보았습니다.
Brightics Studio에는 다양한 블록형 함수들이 있어
손코딩을 하지 않아도 손쉽게 데이터를 분석할 수 있다는 장점이 있지만
Python Script와 Query Executor 함수가 있어
텍스트 분석을 추가적으로 사용하여
더욱 다양한 분석이 가능하다는 점 !!!
[ Query Exenutor ] 함수를 사용하여
아래와 같은 SQL문을 작성해주었습니다.
아래 코드를 보면,
2017년 12월을 기준으로 각 차주가 업권별로 받은 대출금액변수 'AMT',
대출건수 'CNT'를 생성해주었습니다.
* #{DF(0)}는 Load_LN 함수의 결과로
Query Excutor에서 자동 지정되는 변수 입니다.
지난 3, 6, 12개월 동안 받은 대출의 금액 합계와
건수도 같은 방법으로 구해주었습니다.
해당 작업에서는 [ Load ] 함수와 [Query Executor ] 함수
총 2개의 데이터를 SQL로 합쳐 Input으로 연결해 주었습니다.
2017년 12월 대출이 있는 차주들의 정보를 기준으로
전체 데이터에서 기준 시점의 차주들의 2017년 9월부터 11월까지
보유한 대출의 업권별 대출금액, 대출건수 합 변수를 생성합니다.
이를 각각 ATM_3M, CNT_3M으로 명명하였습니다.
*#{DF(0)}은 Qeury Executor_201712 함수의 결과이며,
#{DF(0)}은 Load_LN 함수의 결과로
Query Executor에서 자동 지정되는 변수입니다.
*같은 방식으로 6개월, 12개월간 차주의 업권별 대출금액,
대출건수의 합도 도출합니다.
3. [ Python Script ] 함수
2017년 12월 시점의 데이터(Query Executor_201712)와
3/6/12개월간의 데이터(Query Executor_3M, Query Executor_6M, Query Executor_12M)를
차주 기준으로 붙여줍니다.
[ Join ] 함수를 이용해 두 데이터씩 붙이는 것도 가능하지만
여러 개의 데이터를 한 번에 붙이기 위해 Python Script 함수를 사용했습니다.
Input으로 Query Executor_201712, Query Executor_3M,
Query Executor_6M, Query Executor_12M 네 개를 연결합니다.
Python Script 함수는 Input과 Output에 대한 설정을 하고
Python Script를 활용할 수 있습니다.
위의 코드에서 inputs[0]은 Query Executor_201712,
inputs[1]은 Query Executor_3M,
inputs[2]는 Executor_6M,
inputs[3]는 Executor_12M에 자동으로 할당됩니다.
이때 함수의 Output 유형과 이름을 선택할 수 있는데
저는 테이블 형태의 데이터셋을 Output으로 하기 위해
Outputs 영역에서 AddOutput을 선택하고
유형은 TABLE, 이름은 output으로 설정해줍니다.
위의 코드에 대해 간략히 설명해보도록 하겠습니다.
1 ---- import pandas as pd
2 ---- df_01 = pd.merge(inputs[0], inputs[1], on = ['JOIN_KEY', 'SCTR_CD'], how = 'outer')
3 ---- df_02 = pd.merge(df_01, inputs[2], on = ['JOIN_KEY', 'SCTR_CD'], how = 'outer')
4 ---- df_03 = pd.merge(df_02, inputs[3], on = ['JOIN_KEY', 'SCTR_CD'], how = 'outer')
5 ---- output = df_03.fillna(0)
1. Python의 Pandas 라이브러리를 불러옵니다.
2. inputs[0]과 inputs[1]의 데이터를 차주의 고유 ID(JOIN_KEY)와 업권코드 (SCTR_CD) 기준으로 합치고 df_01으로 지정합니다.
3. 위와 같은 방식으로 df_01을 inputs[2]와 합쳐 df_02로 저장하고
4. df_02를 inputs[3]과 합쳐 df_03으로 저장합니다.
5. 4개의 데이터를 모두 합친 df_03에서 NULL을 0으로 대체한 데이터셋을 output이라는 이름으로 저장합니다.
4. [ Pivot ] 함수
차주, 업권(JOIN_KEY, SCTR_CD)을 기준으로 하나로 합쳐진 데이터셋을
Pivot 함수를 이용해 차주(JOIN_KEY) 기준으로 변환하였습니다.
[ Pivot ] 함수의 파라미터는 다음과 같습니다,
rows는 JOIN_KEY, Columns는 SCTR_CD, Values는 AMT, CNT, AMT_3M, CNT_3M
AMT_6M, CNT_6M, AMT_12M, CNT_12M 을 선택해준 후
Aggregate Function은 SUM을 선택해줍니다.
해당 과정을 거치면 차주의 2017년 12월 기준 3/6/12개월 동안의
업권코드별 대출금액과 건수를 각각의 변수로 생성해주기 때문에 분석이 더욱 편배집니다.
4. [ Repalce Missing Number ] 함수
[ Pivot ] 함수를 실행한 결과,
차주별 데이터를 생성했지만 결측값이 많습니다.
차주가 대출을 받지 않은 기간이나 업권과 관련된 변수일 때는 값이 없기 때문입니다.
분석을 위해 결측값을 0으로 대체해주었습니다.
이번 포스팅에서는 전처리 중
'대출현황 파생변수를 생성하는 시간을 가졌습니다.
다음 포스팅에서는 차주정보, 카드발금정보를 추출하는 등
전처리 과정을 마친 후 머신러닝 과정을 진행하는 포스팅을 진행하도록 하겠습니다 :)

궁금한 내용은 댓글을 통해 남겨주세요 🥰
* 'Brightics Studio로 시작하는 금융 데이터 분석'을 바탕으로 포스팅되었습니다. *
* Brightics 서포터즈로서 직접 체험하고 작성한 리뷰입니다 *
#삼성SDS #BrighticsAI #BriticsStudio #macBrighticsStudio #Brightics #브라이틱스 #Brightics서포터즈 #서포터즈 #발대식 #모델링 #데이터분석 #데이터사이언티스트 #삼성서포터즈 #대외활동 #대외활동추천 #데이터분석대외활동 #대학생대외활동 #데이콘 #삼성 #삼성대외활동 #서로이웃 #좋아요 #유튜브 #분석맨 #구해줘분석 #카드뉴스
'Brightics AI' 카테고리의 다른 글
[삼성SDS Brightics 서포터즈] 6개월간의 활동 후기 .. 💙 (0) | 2021.11.02 |
---|---|
[삼성SDS Brightics 서포터즈] 마지막 개인프로젝트🥺 / 금융 빅데이터 분석2_CreDB (1) | 2021.10.24 |
[삼성SDS Brightics 서포터즈] 마지막 개인프로젝트🥺 / 금융 빅데이터 분석_CreDB (0) | 2021.10.12 |
[삼성SDS Brightics 서포터즈] 마지막 개인프로젝트🥺 / 금융 빅데이터 분석 (0) | 2021.10.06 |
[삼성SDS Brightics 서포터즈] 개인프로젝트_UCI / 스마트폰을 이용한 사용자 행동 인식 데이터 셋_3. 결과 보고서 (0) | 2021.10.02 |