본문 바로가기
파이썬/파이썬 데이터 분석, 데이터처리

Pandas) 데이터 분석 9편, 함수 적용 및 그룹화

by SeH_ 2023. 1. 16.
반응형

1. 함수 적용

apply를 통해 데이터를 가공할 수 있습니다. 

import pandas as pd 


df = pd.read_excel('score.xlsx',index_col = '순번')


# 함수 적용, apply
# 키 뒤에 cm 붙이기
def add_cm(height):
    return str(height) + 'cm'


df['키'] = df['키'].apply(add_cm)
# add 함수를 호출한 결과 데이터 반영

print(df)

 

영어로 되어있는 란에 첫 글자는 대문자, 나머지는 소문자로 변환시키는 함수를 적용하겠습니다.

# def capitalize(lang):
#     if pd.notnull(lang):
#         return lang.capitalize() # 처음 대문자, 나머지 소문자
#     return lang

# df['SW특기'] = df['SW특기'].apply(capitalize)
# print(df)

 

 

2. 그룹화

동일한 값을 가진 것들끼리 합쳐서 통계 또는 평균 등의 값을 계산하기 위해 사용합니다.

df = df.groupby('학교').get_group('북산고')
print(df)

 

 

 

print(df.groupby('학교').mean()) # 게산 가능한 데이터들의 평균값

 

 

 

print(df.groupby('학교')['키'].mean())
print(df.groupby('학교')[['국어','영어','수학']].mean())

 

 

 

groupby 응용하기! 

 



print(df.groupby('학교').size())# 각 그룹의 크기3/5



df['학년'] = [3,3,2,1,1,3,2,2]
print(df.groupby(['학교','학년']).mean()) #학교별 학년별 평균 데이터

print(df.groupby('학년').mean().sort_values('키')) # 키가 작은 쪽으로

print(df.groupby(['학교','학년']).sum())

print(df.groupby('학교')[['이름','SW특기']].count())# 학교로 그룹화를 한 뒤에 각 학교별 SW 데이터의 수를 가져옴
#Nan 버림



school = df.groupby('학교')
print(school['학년'].value_counts()) # 학교별 그룹화를 한 뒤에 학년별 학생 수 
print(school['학년'].value_counts().loc['북산고']) #북산고만 볼래
#학교로 그룹화를 한 뒤에 북산고에서 몇펀지 비율로!!!! 
print(school['학년'].value_counts(normalize = True).loc['북산고'])

 

댓글