* 수강 강의명: 데이터 분석 종합반 - 2주차
[요약]
0. 구글 Colab 시작하기
- 온라인 파이썬 데이터 분석을 학습 플랫폼 https://colab.research.google.com/notebooks/welcome.ipynb
1. 데이터 분석에 필요한 파이썬 문법
1) 변수
- 특정한 이름이 있는 데이터를 담는 컨테이터로, 변수를 통해 데이터를 쉽게 불러올 수 있음 ex. 변수 = 값
x = 5, y = 2, z = "hello"
print(x)
print(z)
print(x+y)
------------result------------
5
hello
7
* x, y, z가 변수에 해당되며, 변수에 속한 데이터가 숫자일 경우 기본 사칙 연산 적용 가능
2) 리스트
- 순서가 있는 데이터들의 모음집으로 작성 시 대괄호를 사용함 ex. 리스트 = [데이터1, 데이터2, 데이터3 ... ]
- 리스트 안의 순서는 0부터 시작됨
a_list = [1, 2, 3, 'four', [4, 5]]
print(a_list[0])
print(a_list[3])
print(a_list[4][1])
------------result------------
1
four
5
3) 딕셔너리
- 사전과 유사하게 '이름'과 '이름에 해당하는 값'이 쌍으로 이뤄진 데이터들의 모음집으로 작성 시 중괄호를 사용함
ex. 딕셔너리 = {'키(key)’ : 값(value), '키(key)’ : 값(value) , … }
- 원하는 정보인 키(key)를 호출하면 그에 상응하는 값을 쉽게 출력할 수 있음
student_age = {'Jack': 32, 'Ritika': 31, 'Mark' : 22, 'Mathew' : 27}
student_age['Jack']
------------result------------
32
4) 조건문
- 특정한 조건에 맞는 데이터를 추출하기 위한 명령어
[기본 구조]
if <조건문>:
<조건이 성립되면 실행되는 문>
else:
<조건이 성립되지 않으면 실행되는 문)>
[1_하나의 조건] if / else
age = 20
if age >= 20:
print('성인입니다') > 조건이 참이면 성인입니다를 출력
else:
print('청소년이에요') > 조건이 거짓이면 청소년이에요를 출력
[2_복수의 조건] if / elif / else
age = 65
if age > 80:
print('아직 정정하시군요')
elif age > 60:
print('인생은 60부터!')
else:
print('아직어려요!')
** 파이썬은 들여쓰기(indent)로 코드의 블록(시작과 끝) 단위를 나누기 때문에 들여쓰기 여부에 따라 에러가 발생함
5) 반복문
- 데이터를 호출 하기 위한 반복 수행 작업이 필요할 때, 반복되는 작업을 코드 몇 줄로 자동화하는 것
[기본 구조]
- for 변수 in 리스트 :
수행할 문장
fruits = ['사과', '배', '감', '귤']
for fruit in fruits: >> fruit 은 임의로 지은 이름
print(fruit) >> 사과, 배, 감, 귤 하나씩 꺼내어 출력함
6) 비교 연산자
- 주어진 두개의 값을 비교하고, 해당 결과를 'True(참)', 'False(거짓)'으로 출력함. 조건문에 유용하게 사용됨
x = 5
y = 10
ans1 = x > y
ans2 = y > x
print(ans1) >> False
print(ans2) >> True
[+] 조건문 + 반복문 + 연산자 활용
Q. 학생 이름과 키가 기록된 데이터에서 키가 170 이상인 학생을 출력하기
student_height = {"김철수" : 171, "이슬기": 160, "양승화": 180, "이진화": 175}
for x in student_height:
if(student_height[x]>170):
print(x)
------------result------------
김철수
양승화
이진화
2. Pandas로 상관관계 구하기1) 순서 요약
① Pandas 사용 선언하기 ② 데이터 가져오기 ③ 데이터 확인 및 표 읽기 ④ 공백란 제거하기 ⑤ 상관계 구하기
2) 상세 코드
① Pandas 사용 선언하기
import pandas as pd
② 데이터 가져오기
- csv일 경우: titanic = pd.read_table('파일경로',sep=',')
- excel일 경우: titanic = pd.read_excel('파일이름.xlsx',engine='openpyxl')
③ 데이터 확인 및 표 읽기
titanic.head(n)
④ 공백란 제거하기
print(titanic.isnull().sum())
titanic = titanic.dropna()
⑤ 상관계수 구하기
corr=titanic.corr(method='pearson')
corr = corr[corr.Survived !=1] > 상관계수 Survived 요소가 1(최대)이 아닌 수만 불러오기
corr > 결과 확인하기
3. Matplotlib으로 분석 결과 시각화 하기
1) 순서 요약
① matplotlib 사용 선언하기 ② 그래프 그리기 ③ 그래프로 사용할 부분만 남기기 ④ 원하는 그래프로 변경하기
2) 상세 코드
① matplotlib 사용 선언하기
import matplotlib.pyplot as plt
② 그래프 그리기
corr.plot()
③ 그래프로 사용할 부분만 남기기
corr = corr.drop(['PassengerId'], axis ='rows') >> 필요 없는 항목 삭제
corr['Survived'].plot()
④ 원하는 그래프로 변경하기
corr['Survived'].plot.bar() >> 막대그래프로 변경
4. 추가 라이브러리 정보
- 넘파이(numpy): 데이터 연산을 빠르고 쉽게 할 수 있게 도와주는 라이브러리
- 씨본(seaborn): matplotlib보다 다양한 스타일의 그래프 생성이 가능한 데이터 시각화 라이브러리. 랜덤 분포된 데이터를 시각화에 주로 사용됨
- 각 라이브러리 불러오는 코드
import pandas as pd
import matplotlib.pyplot as plt
import numpy as np
import seaborn as sns
[정리]
1) 어떤 문제가 있었나
2) 내가 시도해본 건 무엇인가
3) 어떻게 해결했나
4) 무엇을 새롭게 알았나
- SQL 코드카타 풀이 중 다른 정답과 비교하면서 하기 문법을 발견하여 추후 상세한 코드 활용법 공부 필요
: INNER/LEFT JOIN + USING, IFNULL, DATEDIFF, ROW_NUMBER
- 파이썬 문법은 외운다고 될 것 같지 않아서, 남은 3~5주차 수업을 최대한 빠르게 훑은 후 복습이 필요함
'TIL' 카테고리의 다른 글
[231213] Phython: 실습 - 광고 효율, 상품 기획, 할인율 분석 (0) | 2023.12.13 |
---|---|
[231212] Phython: 요일/시간대/지역별 데이터 분석 및 지도 라이브러리 활용법 (0) | 2023.12.12 |
[231207] Phython: 기초 개념, 데이터 분석 맛보기 (1) | 2023.12.08 |
[231207] SQL: 데이터 가공, pivot table 생성, window function, date 포맷 (2) | 2023.12.07 |
[231206] SQL: Subquery, JOIN (2) | 2023.12.06 |