본문 바로가기
Log/Book Log

[Do it!] Chapter 06 자유자재로 데이터 가공하기

by TypeMIN 2022. 7. 3.
728x90

Github Link

06-1 데이터 전처리


데이터 전처리 (Data preprocessing)

  • 분석에 적합하게 데이터를 가공하는 작업

06-2 조건에 맞는 데이터만 추출하기


# 'score'가 80 이상인 데이터 추출
df.query('score >= 80')      

06-3 필요한 변수만 추출하기


# 'score' 변수 추출
df['score']
# 'score', 'id' 변수 추출
df[['score', 'id']                     

# 'score' 변수 제거
df.drop(columns = 'score')
# 'score', 'id' 변수 제거
df.drop(columns = ['score', 'id'])    

06-4 순서대로 정렬하기


# 'score' 오름차순 정렬
df.sort_values('score')
# 'score' 내림차순 정렬
df.sort_values('score', ascending = False)
# 'score' 내림차순, 'id' 오름차순 정렬
df.sort_values(['score', 'id'], ascending = [False, True])    

06-5 파생변수 추가하기


# 'total' 파생변수 추가
df.assign(total = df['math'] + df['english'])            

# 'total', 'mean' 파생변수 추가
df.assign(total = lambda x: x['math'] + df['english'],
          mean = lambda x: x['total'] / 2)                
  • lambda를 이용하여 데이터 프레임명 대신 약어 입력 가능
  • 앞에서 만든 파생변수를 이용해 다시 파생변수를 만들 때에는 반드시 lambda를 이용해 데이터 프레임명을 약어로 입력해야 함

    06-6 집단별로 요약하기


# 데이터를 'class'별로 분류
df.groupby('class')

# 데이터의 'score' 항목 평균 구하기
df.agg(mean_score = ('score', 'mean'))

대표적인 요약 통계량 함수

  • sum()
  • mean()
  • std()
  • median()
  • min()
  • max()
  • count()

06-7 데이터 합치기


# 데이터 가로로 합치기
# 'id' 항목을 기준으로 'df1'으로 결합
pd.merge('df1', 'df2', how = 'left', on = 'id')

# 데이터 세로로 합치기
# 두 데이터 프레임의 변수명이 같아야 사용 가능
pd.concat(['df1', 'df2'])
728x90
반응형