데이터 전처리란? 내가 원하는 데이터를 보기 위해 하는 모든 활동
1. 방향성
- 데이터를 통해 무엇을 확인할 것인지?
- 어떤 의사결정을 위해 필요한지?
- 데이터를 통해 무엇을 얻고자 하는지?
2. seaborn
- seaborn 라이브러리에 있는 데이터를 불러와줌
import seaborn as sns
# 'tips' 데이터셋 불러오기
tips_data = sns.load_dataset('tips')
# 데이터셋 확인
print(tips_data.head())
3. pandas
- python에서 데이터를 조작하고 쉽게 분석할 수 있게 도와주는 라이브러리
- 대용량 데이터 처리 가능
- 데이터 조작 기능: 정렬, 필터링, 집계, 결측값 처리 등 데이터를 쉽게 가공
- 데이터 시각화 기능 제공: Matplotlib, Seaborn...
- 데이터를 구조화하여 분석 가능: DataFrame이라는 자료형을 제공하여, 데이터를 표 형태로 분석 가능

4. 데이터 선택
- iloc: 정수 기반 인덱스
- loc: 레이블 기반 인덱스
#행과 열 번호를 통해 특정 데이터를 선택할 수 있음
data.iloc[0,2]
# 행이름과 컬럼명을 통해서도 특정 데이터를 선택할 수 있음
data.loc['행이름' , '컬럼명']
5. 데이터 병합
- concat: axis = 0(상하연결), axis = 1(좌우연결) / ignore_index=False(기본값), True(기존 인덱스 무시, 새로운 인덱스 설정)
- merge
# a = 데이터프레임1
# b = 데이터프레임2
pd.merge(a, b, on = '병합 기준이 되는 열', how = '조인 방법'
6. 데이터 집계
- agg(): 다양한 집계 함수 적용 가능
# 샘플 데이터프레임 생성
data = {
'Category': ['A', 'A', 'B', 'B', 'A', 'B'],
'SubCategory': ['X', 'Y', 'X', 'Y', 'X', 'Y'],
'Value1': [1, 2, 3, 4, 5, 6],
'Value2': [10, 20, 30, 40, 50, 60]
}
df = pd.DataFrame(data)
# 'Category'와 'SubCategory' 열을 기준으로 그룹화하여 각 그룹별 'Value1'과 'Value2'의 평균, 합 계산
grouped_multiple = df.groupby(['Category', 'SubCategory']).agg({'Value1': ['mean', 'sum'], 'Value2': 'sum'})
print(grouped_multiple)
# pivot Table()
# 샘플 데이터프레임 생성
data = {
'Date': ['2023-01-01', '2023-01-01', '2023-01-02', '2023-01-02', '2023-01-01'],
'Category': ['A', 'B', 'A', 'B', 'A'],
'SubCategory': ['X', 'Y', 'X', 'Y', 'X'],
'Value': [10, 20, 30, 40, 50]
}
df = pd.DataFrame(data)
# 피벗 테이블 생성: 'Date'를 행 인덱스로, 'Category'와 'SubCategory'를 열 인덱스로, 값은 'Value'의 합으로 집계
pivot = df.pivot_table(index='Date', columns=['Category', 'SubCategory'], values='Value', aggfunc='sum')
print(pivot)
7. 데이터 정렬하기
- sort_values(): 칼럼 기준으로 정렬
- sort_index(): 인덱스 기준으로 정렬
8. 한글 깨짐 방지
import matplotlib.pyplot as plt
plt.rcParams['font.family'] ='Malgun Gothic'
plt.rcParams['axes.unicode_minus'] =False'TIL > 데이터 분석' 카테고리의 다른 글
| 데이터 전처리 실습 (0) | 2024.01.26 |
|---|---|
| 데이터 분석 종합반 3주차 (0) | 2023.12.21 |
| 데이터 분석 종합반 1주차 + 2주차 (0) | 2023.12.18 |