
우중충 하고도 상쾌한 아침! 17일차 아침이 밝았다.
날씨는 우중충. 구름이 많이 끼어서, 하늘이 흐리다. 곧 비가 올 것 같다
저번주에서 대충한 것을 이번주는 반드시 보강할 차례
주말일정이 생각보다 바빠 공부를 제대로 하지 못해서... 이번주는 타이트하게 진행해야한다
데이터 분석 입문 주차
본캠프 3주차
오늘 학습은 코드카타, 데이터 전처리 및 시각화 관련 복습이다.
라이브세션, 지급받은 강의 자료 살펴보면서 가보자
데이터 전처리 & 시각화 - 3, 4 주차(1차 복습)
자료를 보며 다시 확인해보자
데이터 전처리는 대부분 EDA가 8-9할이다(80~90%)
파이썬에서 데이터 전처리를 할 때, pandas는 단골 손님. 그냥 애증의 관계
pandas의 메서드를 다 외울수 없다면, 커닝페이퍼 격의 정보가 담겨있는 파일이 있다.
pandas cheat cheet : https://pandas.pydata.org/Pandas_Cheat_Sheet.pdf
인덱스
인덱스란? : 데이터프레임 또는 시리즈의 각 행또는 각 요소에 대한 식별자
여기서 시리즈는 열에 해당하는 녀석. 그니까 한 컬럼으로 생각하면 편하겠다.
인덱스 관련 코드
# Pandas에서 사용자가 직접 설정한 인덱스를 변경하는 예시
import pandas as pd
# 사용자가 직접 인덱스를 설정한 데이터프레임 생성
df = pd.DataFrame({'A': [1, 2, 3], 'B': ['a', 'b', 'c']}, index=['idx1', 'idx2', 'idx3'])
# 인덱스 변경 (대체)
df.index = ['new_idx1', 'new_idx2', 'new_idx3']
print(df)
인덱스의 특징
고유성, 불변성, 조작 및 탐색, 정렬
고유성: 각 행은 유일한 인덱스 값을 가진다.(중복 인덱스는 없다는 소리)
불변성: 한 번 생성된 인덱스는 수정할 수 없다
조작 및 탐색: 데이터 프레임 또는 시리즈를 선택하거나 탐색 가능
정렬(sorting): 인덱스를 기준으로 데이터프레임 또는 시리즈의 각 행을 정렬할 수 있다
인덱스 활용
set_index() → 특정 컬럼에 들어있는 값을 인덱스로 활용하기
리스트 인덱스 형태로 활용해서 인덱스를 변경할 수 있다
df.index = ['columns1', 'columns2', 'columns3', ....'columns9']
reset_index()를 활용해서 0부터 시작하는 인덱스를 다시 지정
컬럼
컬럼은? 데이터 프레임의 열을 나타낸다
시리즈 객체로 구성되는 컬럼!
조금 쉽게 생각하자면 컬럼은 시리즈와 비슷하다고 보면 된다
컬럼출력
print(df[‘column’])
컬럼명 바꾸기
names = [‘column1’, ‘column2’, ‘column3’, …]
컬럼 조회하기
df.columns
#df라는 데이터프레임에 있는 컬럼을 출력
데이터프레임.columns : 데이터프레임에 있는 컬럼을 조회할 수 있다
데이터 확인하기
주요 메서드
.head(): 데이터 앞쪽의 행을 조회(기본값 5)
.info(): 데이터의 정보를 확인
.describe(): 데이터의 기초통계량 확인(개수 평균 최대.. 등등)
결측치
.isnull().sum: 결측치 확인
.dropna(): 결측지 제거
중복데이터
.duplicated(subset=[‘columns’]): 중복데이터 확인
.drop_duplicates(subset=[‘columns’]): 중복데이터 제거
.astype()
데이터 변경을 해주는 메서드
데이터프레임[컬럼].astype(변경타입)
데이터 선택
.loc 와 .iloc, 불리언 인덱싱
loc - 행과 열을 조회(열은 컬럼명을 기재)
iloc - loc와 다르게 위치기반. 즉 슬라이싱을 이용해서 선택한다.
불리언 인덱싱 - 조건을 지정하면 참 값인 데이터를 선택
데이터 추가하기
df = pd.DataFrame()
# 컬럼 추가하기
df['EPL'] = 100
df['MLS'] = 60
df['NBA'] = 70
df
# 리스트 형태로 컬럼값 추가하기
df['KFC'] = [50, 10, 30]
#Tip. 행 수를 맞춰서 입력해줘야함
# 컬럼을 여러 조건 및 계산식을 통해 산출 값으로도 추가가 가능
df['ABC'] = (df['EPL'] + df['NBA']) * df['MLS'] * 2
데이터 병합
concat, join, merge를 이용한 데이터 병합
concat은 axis를 써서 병합
axis = 0 아래붙이기, 행으로 붙인다
axis = 1 옆으로붙이기, 열로 붙인다
merge는 left, right / how / on
how는 left right inner outer 옵션 선택
on은 무슨 컬럼을 기준으로 묶을건지 선택
데이터 집계
Group by()를 이용한 데이터 그룹화
spilt, apply, combine가 추가로 사용된다.
Pivot table
새로운 데이터 프레임
라이브 세션(기초 쑥쑥 데이터 전처리)
튜터님의 강의를 듣고 더 들어가보자
시각화 기초
데이터 시각화의 이해
pandas가 왜 중요할까?
데이터시각화는 숫자와 텍스트로 이루어진 데이터를 차트 그래프 지도등의 시각적 요소로 표현하는 과정
그래서 뗄래야 뗄 수 없는 관계다
탐색적 데이터 분석 EDA
데이터 탐정 작업
데이터 구조와 특성파악 ~ 분석방향성 설정
시각화의 역할
데이터 분포를 파악
변수간의 관계 발견
이상치 탐지
결측치 패턴을 확인
가설 생성과 검증을 지원
Python의 시각화 라이브러리
다양한 입맛에 맞게 활용하면 된다!
일러스트, ppt 등 다양한 라이브러리를 사용!
데이터 시각화의 수준
데이터 시각화는 저수준 / 중수준 / 고수준 단계별로 나뉘어있음
저수준 : matplotlib
기본이고 기초가 되는 라이브러리
중수준 : seaborn
matplotlib에서 파생된 라이브러리
고수준 : plotly, altair, bokeh
조금 더 전문적으로 쓰는 거라서 여기까지 배우지 않는다고 하신다.
궁금하면 찾아보도록 하는데... 조사해보도록 하자
시각화
matplotlib
matlab과 유사한 인터페이스
Matplotlib 공식 사이트에 가면 다양한 차트 제공
Seaborn
더 편한 기능을 제공한다
seaborn을 쓰기 위해서는 맷플롯립을 잘 알아야함
matplotlib에서는 두가지 사용 방식
Pyplot 인터페이스(이걸 많이 써요!)
객체 지향 인터페이스
축범위 지정
.xlim() : x축이 표시되는 범위를 조정
.ylim() : y축이 표시되는 범위를 조정
vscode 관련
vscode로 설정한 데이터 보는 법
아래에 Jupyter에 데이터(내부 메모리)가 저장 되어있다
vscode 실행 시, 시각화 할 때!
시각화 그래프 실행 후 텍스트가 여러개가 나올때 없애는 문구
None을 입력하면 필요한 그래프 외에는 없어진다.
좋은 시각화란?
명확성, 단순성, 목적성, 일관성
범주형 데이터
여러 사람들의 데이터, 사람들을 구분할 때 그라데이션을 쓰지 않고 색을 다분화한다
3d 그래프의 주의점
웬만해서는 3d 그래프를 그리지않는 것이 좋다.
인간의 눈으로 3d를 엄청 잘 읽지 못함
시각화 높낮이와 원근감이 파괴되는 점이 있다(지양해야하는 부분)
2d같은 평면도로 그린다!
높고낮음, 많음과 적음이 필요하면히트맵같이 그라데이션을 활용~!
시각화를 할 때, 알아둘 것!
시각화는 정답이 없다.
자신만의 방법을 써보고, 다른사람의 방법을 보고 활용하며
자신만의 노하우를 기르는 것이 좋다
마치는 글
오늘부터 자료 분리를 위해 코드카타를 따로 분리했다
코드카타가 양이 많지는 않지만, 풀이과정과 답안을 보고 수정하고 이해하는 과정에서
이것저것 글을 쓰다보면 양이 많아진다.
게다가, TIL 작성하는 오후8~9시!
한꺼번에 작성하기에 시간이 많이 걸리기에 분리해서 작성하는게
시간적으로 효율적인 것 같기도 하다
또, 코드카타를 따로 빼두면 나중에 문제만 빼놓았을 때
찾기 쉬워져 괜찮을 것 같다.
'[내일배움캠프]' 카테고리의 다른 글
[QA/QC_2기]본캠프 Day 19: 과제 마무리 및 전처리 과정 복습 (0) | 2025.06.05 |
---|---|
[QA/QC_2기]본캠프 Day 18: 과제의 날 (0) | 2025.06.04 |
[QA/QC_2기]본캠프 Day 16: 정신이 없는 오늘 (0) | 2025.05.30 |
[QA/QC_2기]본캠프 Day 15: 극세척도 (2) | 2025.05.29 |
[QA/QC_2기]본캠프 Day 14: 데이터 분석 (1) | 2025.05.28 |