데이터 분석 파이썬 종합반 3주차
조건문
조건문은 if, elif(else if의 줄임말), else 키워드를 사용하여 구성
조건문에서는 들여쓰기 및 띄어쓰기가 매우 중요
파이썬은 들여쓰기를 통해 블록을 식별하기 때문에 들여쓰기가 제대로 이루어지지 않으면 오류가 발생
조건문은 중첩하여 사용할 수 있음
도출된 결과를 바탕으로 의사 결정을 내릴 때도 조건문을 사용
비교 연산자
- > : 초과
- < : 미만
- >= : 이상
- <= : 이하
- == : 같음
- != : 같지 않음
논리 연산자
- and : 모두 참일 때 참
- or : 하나 이상이 참일 때 참
- not : 조건을 부정
반복문 - for문
for 반복문의 구조
for 변수 in 반복할_데이터:
코드_블록
"반복할_데이터"는 리스트, 튜플, 문자열 등과 같은 반복 가능한(iterable) 데이터 타입
리스트 순회, 문자열 순회, 함수와 함께 사용
range() : 연속된 정수를 생성
range(stop)
range(start, stop)
range(start, stop, step)
#
apple
banana
cherry
![](https://blog.kakaocdn.net/dn/G7HF8/btsLto9k62w/CmxjuEFSkTaKPufsVUj6v1/img.png)
![](https://blog.kakaocdn.net/dn/cJDA7Q/btsLuv1jqQU/qS0A26BmrKdckflsPQYUx1/img.png)
반복문 - while문
while문은 특정 조건이 참(True)일 때에만 실행, 조건이 거짓(False)이 될 때까지 반복
while 조건:
코드_블록
항상 참인 조건을 작성할 경우 무한반복이 발생하므로 주의해야함
break, pass, continue
Quiz
조건문
1. 다음 중 파이썬에서 사용되는 비교 연산자가 아닌 것은? - d
a) ==
b) !=
c) <=
d) ><
2. 임의의 수를 변수에 넣고 그 변수에 입력된 수가 양수인지 음수인지 판별하여 결과를 출력하는 파이썬 코드를 작성해보세요. (0은 양수로 간주합니다)
for문
1. 다음 코드의 출력 결과는 무엇인가요? - b, d
numbers = [1, 2, 3, 4, 5]
for num in numbers:
if num % 2 == 0:
print(num)
a) 1
b) 2
c) 3
d) 4
e) 5
2. 1부터 10까지의 정수 중에서 홀수만을 포함하는 리스트를 생성하는 파이썬 코드를 작성해보세요.
while문
1. 다음 중 무한 루프를 탈출하는 방법이 아닌 것은? - d
a) break문 사용
b) continue문 사용
c) 조건문에서 False가 되도록 설정
d) return문 사용
종합 퀴즈
1부터 100까지의 정수 중에서 3의 배수일 때 "Fizz", 5의 배수일 때 "Buzz"를 출력하세요.(나머지 경우에는 그냥 숫자를 출력합니다)
#
![](https://blog.kakaocdn.net/dn/pnIFZ/btsLsN9M3F2/280ITbRrMZ2vRMLaSyeahK/img.png)
코드업 - 파이썬 기초 100제
6001. python 언어에서 가장 기본적인 명령이 출력문이다.
print( )를 이용해 다음 단어를 출력하시오.
Hello
6002. 이번에는 공백( )을 포함한 문장을 출력한다.
다음 문장을 출력해보자.
Hello World
6003. 이번에는 줄을 바꿔 출력하는 출력문을 연습해보자.
다음과 같이 줄을 바꿔 출력해야 한다.
Hello
World
6004.이번에는 작은 따옴표(')(single quotation mark)가 들어있는
출력문 연습을 해보자.
다음 문장을 출력하시오.
'Hello'
6005. 이번에는 큰따옴표(")(double quotation mark)가 포함된 출력문을 연습해보자.
다음 문장을 출력하시오.
"Hello World"
(단, 큰따옴표도 함께 출력한다.)
6006. 이번에는 특수문자 출력에 도전하자!!
다음 문장을 출력하시오.
"!@#$%^&*()'
(단, 큰따옴표와 작은따옴표도 함께 출력한다.)
6007. 윈도우 운영체제의 파일 경로를 출력하는 연습을 해보자.
파일 경로에는 특수문자들이 포함된다.
다음 경로를 출력하시오.
"C:\Download\'hello'.py"
(단, 따옴표도 함께 출력한다.)
6008. 이번에는 다음과 같은 python프로그램의 소스코드를 출력해보자.
print("Hello\nWorld")
위 코드를 정확히 그대로 출력하시오.(공백문자 주의)
6009. 문자(character)는 0~9, a~z, A~Z, !, @, #, {, [, <, ... 과 같이 길이가 1인 기호라고 할 수 있다.
변수에 문자 1개를 저장한 후
변수에 저장되어 있는 문자를 그대로 출력해보자.
6010. 정수(integer)는양의 정수(1, 2, 3, 4, 5, ...), 음의 정수(-1, -2, -3, -4, -5, ...), 0 과 같이 소숫점 아래에 수가 없는 수라고 할 수 있다.
변수에 정수값을 저장한 후 정수로 변환하여 출력해보자.
6011. 숫자(0~9)와 소수점(.)을 사용해 표현한 수를 실수(real number)라고 한다.
변수에 실수값을 저장한 후 변수에 저장되어 있는 값을 그대로 출력해보자.
6012. 줄을 바꿔 정수(integer) 2개를 입력받아 줄을 바꿔 출력해보자.
6013. 줄을 바꿔 문자(character) 2개를 입력받고, 순서를 바꿔 한 줄씩 출력해보자.
6014. 실수(real number) 1개를 입력받아 줄을 바꿔 3번 출력해보자.
6015. 공백을 두고 입력된정수(integer) 2개를 입력받아 줄을 바꿔 출력해보자.
6016. 공백을 두고 문자(character) 2개를 입력받아 순서를 바꿔 출력해보자.
6017. 정수(integer), 실수, 문자(character), 문자열(string) 등 1개만 입력받아 한 줄로 3번 출력해보자.
6018. 24시간 시:분 형식으로 시간이 입력될 때, 그대로 출력하는 연습을 해보자.
6019. "연도.월.일"을 입력받아 "일-월-연도" 순서로 바꿔 출력해보자.
6020. 주민번호는 다음과 같이 구성된다.
XXXXXX-XXXXXXX
왼쪽 6자리는 생년월일(YYMMDD)이고, 오른쪽 7자리는 성별,출생지역,확인코드로 구성되어있다.
주민번호를 입력받아 형태를 바꿔 출력해보자.
큰 따옴표, 작은 따옴표 앞에 \ 을 사용할 경우 문자로 사용 가능하다.
여러 변수를 한번에 input 지정할 수 있으며 split()을 사용하여 입력시 문자 사이를 나누어줄 기호를 정함(미입력시 공백)
변수 출력시 sep을 사용하여 출력 변수 사이에 들어갈 문자, 기호 입력
데이터 리터러시
데이터 리터러시의 정의
- 데이터를 읽는 능력
- 데이터를 이해하는 능력
- 데이터를 비판적으로 분석하는 능력
- 결과를 의사소통에 활용할 수 있는 능력
- 데이터 수집과 데이터 원천을 이해하고
- 주어진 데이터에 대한 다양한 활용법을 이해하고
- 데이터를 통한 핵심지표를 이해하는 것
- 데이터 리터러시는 올바른 질문을 던질 수 있도록 만들어 줌(스스로에게)
데이터 분석에 대한 착각
- 데이터를 잘 분석하면 문제, 목적, 결론이 나올 것이라고 생각
- 데이터를 잘 가공하면 유용한 정보를 얻을 수 있다고 생각
- 분석에 실패하면 방법론, 스킬이 부족한 것이라고 생각
심슨의 역설 (Simpson’s Paradox)
'부분'에서 성립한 대소 관계가 그 부분들을 종합한 '전체'에 대해서는 성립하지 않는 모순적인 경우
- 전체에 대한 결론이 언제나 개별 집단에 그대로 적용되는 것은 아님
- 데이터에 기반한 결론이라고 해서 이를 맹목적으로 받아들여서는 안됨
시각화를 활용한 왜곡
자료의 표현 방법에 따라서 해석의 오류 여지가 존재
샘플링 편향 (Sampling Bias)
전체를 대표하지 못하는 편향된 샘플 선정으로 인해 오류가 발생
표본이 편향되면서 실제와는 다르게 해석하게 될 수 있음
상관관계와 인과관계
상관관계
- 두 변수가 얼마나 상호 의존적인지를 파악하는 것을 의미
- 파악 방법은 한 변수가 증가하면 다른 변수도 따라서 증가/감소하되 그 추이를 따름
인과관계
- 실질적으로 하나의 요인으로 인해 다른 요인의 수치가 변하는 형태를 의미
- 원인과 결과가 명확한 것
상관관계는 인과관계가 아닌 것을 항상 유의해야 함
- 상관관계만으로 섣불리 의사결정 하지 않기
- 양쪽을 모두 활용하여 합리적인 의사판단 하기
데이터 리터러시가 필요한 이유 - 데이터 분석에 대한 접근법
- ‘생각’이 주요한 단계에서 데이터 리터러시가 필요
- 데이터 분석이 목적이 되지 않도록 왜 데이터 분석을 하는지 항상 생각해야함
문제 정의
- 데이터 분석 프로젝트의 성공을 위한 초석
- 분석하려는 특정 상황이나 현상에 대한 명확하고 구체적인 진술
- 프로젝트의 목표를 설정하고 분석 방향을 설정
풀고자 하는 문제를 명확하게 정의하지 않으면 데이터 분석에 실패하기 쉬움
문제 정의는 복잡하고 시간이 걸리는 과정.
항상 '문제를 올바르게 정의 하였는가?' 라는 물음을 가지고 임해야 함
문제 정의 방법론
MECE (Mutually Exclusive, Collectively Exhaustive)
- 문제 해결과 분석에서 널리 사용되는 접근 방식
- 문제를 상호 배타적(mutually exclusive)이면서, 전체적으로 포괄적(collectively exhaustive)인 구성요소로 나누는 것
- MECE를 통해 복잡한 문제를 체계적으로 분해하고, 구조화된 방식으로 분석할 수 있음
중복, 누락, 분류 기준을 확인해야함
로직 트리(Logic Tree)
- MECE 원칙을 기반으로 복잡한 문제를 더 작고 관리하기 쉬운 하위 문제로 분해하는데 사용
- 상위 문제로부터 시작하여 하위 문제로 계층적 접근
- 일반적으로 도표 형식으로 표현되어 쉽게 파악할 수 있음
- 로직트리를 활용하여 문제정의 해보기
로직 트리 Cheat Sheet
시장 / 점유율에 따라 분류
개념적으로 분류
반대되는 말로 분류
세그먼트에 기반하여 분류
앱 서비스에 적용하기 위해 변경해 본다면? (비즈니스에 따라서 정의가 달라짐!)
- 세그먼트 분류
- 라이트유저, 일반유저, 헤비유저 > 구매 전 고객, 재구매 고객, VIP 고객 ex) 배달의 민족 고마운분, 귀한분, 더귀한분, 천생연분
- 캡슐 점유율
- 해당 서비스 시장 점유율로 변화
문제 정의는 풀고자 하는 것을 명확하게 정의하고 이것을 해결하기 위한 데이터 분석의 방향성을 정하고 결과를 정리하고 해석하여 더 나아지기 위한 새로운 액션 플랜을 수립하기 위함
문제정의의 핵심은 So What?, Why So?
- So what?
- 수집한 정보와 소재에서 ‘결국 어떻다는 것인지’를 알아내는 작업
- 그래서, 따라서, 이렇듯 앞에 오는 정보나 소재에서 과제의 답변에 맞는 중요한 핵심을 추출하는 작업
- 나타난 현상을 바탕으로 과제에 비추어 말할 수 있는 내용의 핵심을 추출하는 작업
- Why So?
- 왜 그렇게 말할 수 있는지
- 구체적으로 무슨 뜻인지를 검증하고 확인하는 작업
- So what?한 요소의 타당성을 자료 전체 혹은 그룹핑한 요소로 증명할 수 있다는 사실을 검증하는 작업
- 도식화한 로직 트리가 위 법칙에 맞는지 확인해보기
문제정의 팁
- 결과를 공유하고자 하는 사람이 누구인지 정의하기
- 결과를 통해 원하는 변화를 생각하기
- 회사 소속이라면, 경영자의 입장에서 보려고 노력
- 많은 사람들과 의견을 나눠보는 것도 방법
- 반드시 혼자서 오래 고민해보는 시간을 가질 것
아티클 스터디 진행(https://essay2892.tistory.com/29)
'TIL(Today I Learned)' 카테고리의 다른 글
[2024/12/27]내일배움캠프 QA/QC 1기 - 9일차 (4) | 2024.12.27 |
---|---|
[2024/12/26]내일배움캠프 QA/QC 1기 - 8일차 (0) | 2024.12.26 |
[2024/12/23]내일배움캠프 QA/QC 1기 - 6일차 (0) | 2024.12.23 |
[2024/12/20]내일배움캠프 QA/QC 1기 - 5일차 (2) | 2024.12.20 |
[2024/12/19]내일배움캠프 QA/QC 1기 - 4일차 (1) | 2024.12.19 |