CHAPTER 01. 데이터 분석이란?
1. 데이터 분석의 목적과 흐름
•
데이터 분석가의 역량
◦
Python, SQL 등 같은 데이터분석 툴을 활용하는 능력
◦
인사이트 도출 능력
◦
팀과의 협업 능력
•
데이터 분석의 핵심가치
◦
수집한 데이터에서 어떤 가치를 뽑아내는가?
◦
데이터를 분석하여 어떤 것을 얻어내고 싶은가?
◦
데이터를 통한 올바른 의사 결정을 할 수 있는가?
2. 데이터 분석은 어떻게 진행되는가?
•
데이터 분석 과정(python)
◦
데이터 수집: 이미 되어있는 경우가 많음. 없는 경우 크롤링
◦
데이터 탐색: EDA 데이터에 대한 파악 → 해당 과정에서 집중하는 것!
◦
데이터 전처리: 사용할 수 있게끔 처리
◦
데이터 모델링
3. 비즈니스 데이터 분석의 이해
•
고객들의 거래 내역 정보 → 고객정보 분석
◦
고객들의 정보를 보고 이 사람이 파산할지 안할지? 구매할지 안할지? 등
→ 비즈니스 영역에서의 확인해야 할 부분
◦
고객 유형과 세분화: 고객의 특성으로 묶어서 세분화 및 그룹화
→ 추후 유사한 고객에게도 유사한 서비스 등을 제공
•
서비스 설문 데이터 → 서비스를 고도화해서 비즈니스 모델을 만들 수 있음
◦
예) 이런 특성을 가진 사람들이 이런 서비스를 원하니까, 추후에 이런걸 추천하면 되겠다
•
비즈니스 데이터 분석의 가치
◦
수집한 데이터에서 어떤 가치를 뽑아내는가?
→ 비슷한 고객들은 비슷한 의사 결정을 할까?
◦
데이터를 분석하여 어떤 것을 얻어내고 싶은가?
→ 고객들을 비슷한 유형들로 세분화
◦
데이터를 통한 올바른 의사 결정을 할 수 있는가?
→ 비슷한 고객들이 잘 세분화 되었다면, 새로운 고객에 대해 유사한 집단에 적용 가능
4. 데이터 분석 도구 소개
필요한 기능을 파악 한 뒤, 목적에 따라 골라쓰면 됨
•
Application vs Programming
→ 기존에 있는걸 쓸거냐, 필요에 따라 내가 만들어 쓸거냐
→ Application: excel, Programming: R, python 등, pandas library
•
고객 유형 분석을 Excel과 Python으로 비교
◦
EXCEL
→ 대용량 데이터에 적합하지 않음
▪
장점: 손쉽게 데이터 분석 시작 가능, GUI로 그래프 통계 등을 직관적으로 볼 수 있음
▪
단점: 대용량 데이터에 취약(느림), 머신러닝 서버구성 등의 기능 사용 불가능
◦
Python(Pandas)
▪
장점: 대용량 데이터를 빠르게 다룰 수 있음, 머신러닝 서버배포 등 함께 구현 가능
▪
단점: 학습의 난이도가 높다, GUI 환경이지만 엑셀만큼 직관적이지 않음
CHAPTER 02. 환경설정
•
아나콘다 설치
•
Jupyter Notebook 설치
CHAPTER 3-1. 분석도구 Python
Python 이란
•
Programming : 컴퓨터에서 명령을 내리는 일련의 과정
•
Computer Architecture
◦
SSD: 스토리지 → 데이터를 많이 들고 있을 수 있음
◦
CPU: 처리 프로세서 → 빠른대신 많은 데이터를 들고 있을 수 없음
◦
RAM: CPU와 SSD의 중간. 적당히 빠르고 적당한 스토리지
•
Python
◦
생산성: 개발속도가 빠름
◦
가독성: 코드가 이쁨
◦
확장성: 오픈소스 라이브러리가 많음
→ 무료로 오픈되어 있는 소스가 많아 가져다 쓰기 편함
•
주요 라이브러리
CHAPTER 3-2 Data Type(Intro)
Python 기초 문법 - Data Type (Intro)
•
Data Type이란?
모든 프로그래밍 언어가 데이터를 다루기 위해 필요한 약속
(ex. int, float, str, list, tuple, set, dict, ...)
•
Data Type 종류
◦
numberic
▪
Integer: 소수가 아닌 숫자
▪
Float: 소수 숫자
◦
Dictionary: 사전 타입
◦
Boolean: 참 or 거짓
◦
Set: 집합
◦
Sequence Type: 순서를 가지고 있음
•
변수(variable)이란?
변수는 메모리에 데이터를 저장하기 위한 공간을 가리키는 말
(ex. a = 10, a라는 저장 공간에 10을 할당)
◦
변수 a에 10이라는 정수 데이터를 할당(assign)한다.
a = 10
◦
a라는 변수가 실제 메모리에서 저장되어 있는 위치.(메모리 주소)
id(a) → 140706008277024 a가 있는 메모리 주소
왜 data type은 여러가지 일까?
•
Q1. 컴퓨터는 정수와 실수를 어떻게 인식할까? (어떻게 구분할까)
•
Q2. 100개의 숫자를 한꺼번에 다루고 싶을 때 어떻게 해야할까?
•
Q3. 컴퓨터는 문자를 어떻게 인식할까?
•
Q4. 많은 데이터를 빠르게 찾아야 할때는 어떻게 저장할까?
CHAPTER 3-3 Data Type(int, float)
Python 기초 문법 - Data Type (int, float)
•
데이터 타입
◦
정수형(int)
→ 1 + 1 = 2
◦
실수형(floating point)
•
연산자
◦
사칙연산
◦
특수연산
문제
CHAPTER 3-4. Data Type (String)
1. String이란?
•
문자의 나열을 의미
•
컴퓨터는 문자를 encoding하여 숫자로 표현함(문자를 숫자로 인식함)
예) ASCII, utf-8, cp949 등 → utf가 현재 전세계적으로 웹에서 사용되는 국제 표준
2. String 기본 특징
•
문자 사용 종류
◦
“”” 를 사용하면 그대로 스페이스까지 포함해서 인식
•
특수 문자 표현(escape code)
◦
\n : new line
◦
\t : tab
•
문자열 연산하기
◦
문자 더하기
◦
문자 곱하기
3. 문자열 Formatting
•
프린트 되는 포맷을 정할 수 있음
•
문자열 포맷에는 크게 3가지가 있음
•
문자열 포맷팅 종류
◦
print format 사용
▪
% 뒤의 s 는 string, % 뒤의 d는 정수
→ 사과와 4개가 순서대로 맵핑됨
◦
str.format 함수사용
◦
f-string
4. 문자열 관련 함수들(**)
•
(영어) 대소문자 바꾸기
◦
upper(), lower()
•
문자 공백 지우기
◦
strip( ) → 뒤의 공백만 지움, 가운데에 있는 공백은 문자로 인식됨
•
문자열 삽입
◦
join ( ) → 문자 사이사이에 왼쪽에 있는 것들을 넣어줌
•
문자열 나누기
◦
split ( ) → ( ) 일경우 공백 기준으로 잘림, (’is’)가 들어갈 경우 그 기준으로 잘림
•
문자열 바꾸기
◦
replace (a, b) → a를 b로 치환해줌
CHAPTER 3-5. Data Type (List)
1. 리스트
•
자유롭게 수정이 가능함 (수정이 안되게 할때는 튜플을 사용)
•
리스트에는 다양한 타입의 원소를 포함할 수 있음
•
행렬처럼 표현할 수 있음
2. Indexing
•
리스트의 원소를 뒤에서 찾기
◦
L[-3]→ L[len(L) - 3] == L[5-3] == L[2]
•
원소를 가져다가 더할 수 있음
◦
리스트 L
◦
인뎅식해서 더하기
•
리스트 안의 리스트
◦
L2[1][0]→ 두번째에 있는 첫번째 숫자를 가져오기
3. Slicing
•
전체 리스트의 일부를 자르는 것
•
예제
◦
L = [1,2,3,4,5] 일때
▪
L[ : -1] → L[ : len(L) - 1] = L [ : 5- 1 ] : L [ : 4]
▪
L[ -2 :] → L [ -2 : len(L)] = L[3 : len(L)]
4. 리스트 관련 함수
→ 리스트 활용






























