데이터 전처리&시각화 강의
강의 자료 : 데이터 전처리 (Pandas)
3주차 강의를 수강하였습니다. 시간 보고 4주차까지 수강하려고 했는데 하나씩 따라하다 보니까 생각보다 시간이 오래 걸려서 4주차는 아예 듣지도 못했습니다..
3주차에서는 데이터 전처리에 대해 다루었습니다.
VScode를 사용해서 직접 실습을 해보면서 강의를 들었습니다.
데이터 전처리
내가 원하는 데이터를 보기 위해 하는 모든 활동이라고 볼 수 있습니다.
데이터 전처리를 할 떄는 꼭 방향성을 가지고 해야 합니다.
데이터셋 불러오기
강의에서 seaborn이라는 라이브러리에서 불러올 수 있는 내장데이터셋을 가지고 실습을 진행하였습니다.
이번 강의에서 쓴 것도 있지만 아직 안 쓴 것도 있습니다.
1. iris : 붓꽃의 꽃잎과 꽃받침의 길이와 너비를 포함한 데이터셋
2. tips : 음식점에서의 팁과 관련된 정보를 담고 있는 데이터셋
3. titanic : 타이타닉 호 승객들의 정보를 포함한 데이터셋
4. flights : 연도별 항ㄱ공편 정보를 담고 있는 데이터셋
5. planets : 외계 행성 발견에 대한 정보를 담고 있는 데이터셋
데이터 불러오기
data.to_csv("tips_data.csv", index = False)
df = pd.read_csv("tips_data.csv")
df
데이터 저장하기
df.to_csv("temp/tips_data.csv", index = False)
df.to_excel("tips_data.xlsx")
csv와 엑셀로 데이터 저장
인덱스
데이터프레임 또는 시리즈의 각 행 또는 각 요소에 대한 식별자
DataFrame 자료구조에도 인덱스를 설정할 수 있으며, 0부터 시작하는 숫자 뿐 아니라 문자로 적용할 수도 있습니다. 그리고 처음에 파일을 불러올 때 인덱스를 지정하는 것도 가능합니다.
인텍스의 특징
- 고유성 : 각 행은 유일한 인덱스 값을 가져야 함
- 붋변성 : 한 번 생성된 인덱스는 수정 및 변경할 수 없음
하지만 새로운 값을 할당하여 기존 인덱스에 대체하는 것은 가능
import pandas as pd
df = pd.DataFrame({'A': [1, 2, 3], 'B': ['a', 'b', 'c']}, index=['idx1', 'idx2', 'idx3'])
df
# 인덱스 변경 (대체)
df.index = ['new_idx1', 'new_idx2', 'new_idx3']
print(df)
- 조작 및 탐색 : 인덱스를 사용하여 데이터프레임 또는 시리즈의 특정 행을 선택하거나 탐색할 수 있음
- 정렬 : 인덱스를 기준으로 데이터프레임 또는 시리즈의 행을 정렬할 수 있음
컬럼
데이터프레임의 열 또는 변수를 나타냄
컬럼의 특징
- 고유한 이름을 가지고 있ㅇ며 해당 컬럼의 데이터를 식별하는 데 사용
- 특정한 종류의 데이터를 담고 있고 숫자, 문자열, 날짜 등 다양한 유형의 데이터를 포함할 수 있음
- 시리즈 객체로 구성되어 있으며, 시리즈는 동일한 데이터 유형을 가진 1창원 배열과 유사함
- 데이터프레임의 일부로 간주되며, 해당 열의 데이터를 조작하고 접근할 수 있는 인터페이스를 제공함
df[['day','total_bill','tip','size']].groupby('day').mean()
[] : 특정 열 하나 바꿀 때
[[]] : 여러 열 바꿀 때
아티클
데이터 시각화 101: ③데이터 속 거짓말 발견하기 | 요즘IT
요약
데이터 왜곡에 대한 사례들을 다룸
막대그래프
어떤 변수의 값을 기준선으로부터의 막대 길이로 나타낸 그래프로 불연속적인 데이터를 다룸
1. 기준선이 0인지 확인 : 높이가 변수의 값으로 인식되므로 기준선을 0으로 두는 것이 매우 중요

왼쪽 그래프의 기준선을 0으로 두면 오른쪽 그래프가 됨
2. Y축 살펴보기 : 하나의 값이 다른 값들에 비해 상대적으로 크면 막대에 물결선 표시를 해서 축약하는 경우가 있음
선그래프
시간에 따른 연속적인 변화를 보여주는 데이터를 표현하는 데 주로 사용
변화를 보여주는 것이 목적이므로 일반적으로 기준선을 0으로 두지 않음
1. 두 개의 Y축을 멀리하기 : 두 개의 다른 Y축을 가진 선그래프를 겹쳐 놓으면 스케일의 차이로 인해 정보가 왜곡될 수 있음
두 개의 Y축을 하나의 그래픽에서 사용하는 것은 왜곡이 클 수 있으므로 각각 두 개의 그래프로 나누어 표현하는 것이 좋음
2.누적값으로 눈속임
Y축 스케일을 표시하지 않고 과장되게 표현할 수 있으므로 이를 조심해야 함
파이 차트
어떤 변수의 전체 합을 100%로 했을 때 각 부분의 구성 비율을 보여주는 데 주로 사용
1. 전체 합이 100%인지 확인
2. 3D는 피하기 : 동일한 데이터라도 각도에 따라 보이는 면적이 달라 시각적으 데이터값에 대한 왜곡 일어남
지도
위치 정보 데이터를 시각화할 때 주로 사용
직관적으로 이해되기 때문에 데이터의 출처가 올바르고 과장되지 않게 표현해야 함
주요 포인트
시각화된 데이터를 우리 뇌는 직관적으로 인식하여 해석함. 하지만 직관적으로 이해된 정보가 실제와 다른 부정확한 정보를 전달하기도 하고, 시각적으로 오해를 불러일으키기도 함.
데이터 시각화를 통해 받아들이는 정보가 정확한지, 왜곡된 부분은 없는지 항상 의문을 가지고 시각화를 이해하려는 태도가 필요
핵심 개념
시각화된 데이터는 간혹 부정확한 정보를 전달하기도 하고 시각적으로 오해를 불러일으키키도 함
이러한 문제점이 왜 일어나는지 이해하고 데이터 시각화를 정확하게 판단하며 볼 수 있는 눈을 길러야 함
데이터 전처리&시각화 세션
오늘 세션은 숙제 풀이, 데이터 분석 5단계 정리, 타이타닉 데이터로 실습 순으로 진행되었습니다.
1. 숙제 풀이
숙제는 12월 31일 블로그에 적어놨는데, 맞는 풀이였습니다!
2. 데이터 분석 5단계
문제 정의 -> 데이터 수집 -> 분석->시각화->결론
데이터 수집을 할 때는 수단과 방법을 가리지 않고 수집해야 된다고 하셨습니다.
국가에서 무료로 데이터를 제공해주는 사이트가 있는데, AI hub입니다. 필요한 데이터를 무료로 쓸 수 있어서 예전에 공모전 준비할 때 써봤습니다.
결론은 수치적인 결론이어야 하며 객관적이어야 합니다.
3. 타이타닉 데이터로 실습
문제정의 : 타이타닉 사건, 어떤 요인이 사망자(y)에 영향을 미쳤을까?
가설설정 : 여성(x)일수록 생존율이 높을 것이다.
좌석 등급이 높을수록 생존율이 높을 것이다.
나이가 낮을수록 생존율이 높을 것이다.

파이차트 : 컬럼 없이 들어갔을 떄 차지하는 비율을 나타낸다.
넣을 수 있는 정보가 제한적임
라이브러리 불러오기
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
데이터 불러오기
titanic = sns.load_dataset('titanic')
titanic.head(20)
생존자 몇 명인지 확인
survival_counts = titanic['survived'].value_counts()
survival_counts
파이차트로 비율 확인하기
%%capture
# 폰트 설치
!sudo apt-get install -y fonts-nanum
!sudo fc-cache -fv
!rm ~/.cache/matplotlib -rf
# 필요한 라이브러리 임포트
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
# 폰트 설정
plt.rc('font', family='NanumGothic')
plt.rcParams['axes.unicode_minus'] = False
plt.figure(figsize=(8,8)) # 사이즈
plt.pie(survival_counts,
labels = ['사망','생존'],
autopct='%1.1f%%', # 소수점 표현
colors=['lightcoral','lightgreen']
)
plt.title('타이타닉 탑승객 생존 비율')
plt.show()
위 코드를 돌리면 아래의 사진과 같은 파이차트가 결과로 출력됩니다.

이런 식으로 여러 데이터로 파이차트를 만드는 실습을 진행하였습니다.
강의를 다 못 듣고 세션을 들으니까 너무 어렵고 이해가 안되는 부분이 많았습니다.
강의 다 듣고 다시 세션에서 배운 부분을 공부해봐야 할 것 같습니다.
'내일배움캠프_QAQC 1기 > TIL' 카테고리의 다른 글
| [01/06] TIL_강의 복습, 개인 과제, 세션 (0) | 2025.01.06 |
|---|---|
| [01/03] TIL_강의, 세션 (1) | 2025.01.03 |
| [12/31] TIL_강의, 아티클, 세션 (1) | 2024.12.31 |
| [12/30] TIL_강의, 과제 해설 (3) | 2024.12.30 |
| [12/27] TIL_강의, 개인 과제, 세션 복습 (3) | 2024.12.27 |