본문 바로가기

TIL/데이터 분석

데이터 전처리

데이터 전처리란? 내가 원하는 데이터를 보기 위해 하는 모든 활동

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