
데이터의 형태를 분석 목적에 맞게 넓게(Wide) 펴거나 길게(Long) 쌓는 기능
서로 반대되는 개념으로 데이터의 차원을 변경함
df.pivot): 'Long' 포맷 'Wide' 포맷으로 변경df.melt): 'Wide' 포맷 'Long' 포맷으로 변경 (컬럼을 녹여서 행으로 만듦)멀티 인덱스(Multi-Index)를 다룰 때 주로 사용
df.stack): 컬럼 레벨을 인덱스(행) 레벨로 압축 (Wide Long)df.unstack): 인덱스(행) 레벨을 컬럼 레벨로 펼침 (Long Wide)df.explode): 리스트(List) 형태의 데이터를 가진 컬럼을 개별 행으로 분리여러 개의 DataFrame을 하나로 합치는 방법
df.merge)SQL의 Join과 유사하게, 특정 키(Key)를 기준으로 병합하는 방식
inner, outer, left, right)pd.concat)물리적으로 데이터를 단순하게 이어 붙이는 방식
0이면 위아래(행 추가), 1이면 옆으로(열 추가) 붙임outer(합집합), inner(교집합)True/False)두 변수 간의 관계의 강도와 방향을 수치화하는 통계 기법
import seaborn as sns
import matplotlib.pyplot as plt
# 데이터 로드
df = sns.load_dataset("penguins")
# 1. 상관 계수 계산
# method='pearson' (기본값)
# numeric_only=True: 숫자형 데이터만 계산
corr_matrix = df.corr(method='pearson', numeric_only=True)
# 2. 히트맵 시각화
sns.heatmap(corr_matrix,
annot=True, # 값 표시
fmt=".2f", # 소수점 둘째자리까지
cmap='coolwarm', # 색상 테마
vmin=-1, vmax=1) # 범위 설정
plt.show()
# 3. 선형 관계 시각화
sns.lmplot(x="bill_length_mm", y="bill_depth_mm", data=df)
💡 Tip: numeric_only 옵션
- 보통
True로 설정하여 수치형 데이터만 계산함Boolean데이터(True/False)는 자동으로 1/0으로 계산되므로 포함 가능- 일반적인 범주형 데이터는 수치형으로 변환(Encoding) 후 분석하는 것이 정석임
도움이 되셨다면 ❤️와 댓글 부탁드립니다!