Series Grouping
특정 카테고리로 내용을 분리시켜요!
import numpy as np
import pandas as pd
df = pd.DataFrame({'학과' : ['컴퓨터', '철학', '컴퓨터', '철학', '컴퓨터'],
'이름' : ['아이유','김연아','홍길동','강감찬','신사임당'],
'학년' : [1, 2, 3, 2, 3],
'학점' : [1.5, 2.7, 3.7, 1.9, 4.0]})
display(df)
dept = df['학점'].groupby(df['학과']) # groupby() 연관성이 있는 것끼리 grouping
display(dept)
#<pandas.core.groupby.generic.SeriesGroupBy object at 0x000002186496 B8 C8>
# get_group → 함수를 그룹객체에 적용해 나눠진 그룹중 가져오고 싶은 그룹만 가져와요.
computer = dept.get_group('컴퓨터')
print(computer) #그룹에 대한 정보
0 1.5
2 3.7
4 4.0
Name: 학점, dtype: float64
g_size = dept.size() #그룹당 몇개
print(g_size)
학과
철학 2
컴퓨터 3
dtype: int64
print(dept.mean()) #학점에 대한 학과별 그룹 평균
학년 학점
학과
철학 2.000000 2.300000
컴퓨터 2.333333 3.066667
2단계 grouping
import numpy as np
import pandas as pd
df = pd.DataFrame({'학과' : ['컴퓨터', '철학', '컴퓨터', '철학', '컴퓨터'],
'이름' : ['아이유', '김연아', '홍길동', '강감찬', '신사임당'],
'학년' : [1, 2, 3, 2, 3],
'학점' : [1.5, 2.7, 3.7, 1.9, 4.0]})
display(df)
dept = df ['학점']. groupby([df ['학과'], df ['학년']])
dept.mean()
학과 학년
철학 2 2.30
컴퓨터 1 1.50
3 3.85
Name: 학점, dtype: float64
#이렇게 처리하면 2차 index를 이용하는 형식이 되기 때문에 사용하기 많이 불편해져요!
#많이 사용하는 방식은 최 하위 index를 column으로 만들어서 2차원 DataFrame으로 변환시키는 방법을 많이 이용해요.
#unstack
학과 학년 <=1차 , 2차 인덱스 여기서 가장 오른쪽 인덱스 '학년'을 최하위 인덱스라고 불려요
철학 2 2.30
컴퓨터 1 1.50
3 3.85
Name: 학점, dtype: float64
#unstack
stack : 위에서 아래로 (행방향)
unstack : 왼쪽에서 오른쪽으로 (열방향)
dept.mean()
display(dept.mean(). unstack())
DataFrame Grouping
import numpy as np
import pandas as pd
df = pd.DataFrame({'학과' : ['컴퓨터', '철학', '컴퓨터', '철학', '컴퓨터'],
'이름' : ['아이유', '김연아', '홍길동', '강감찬', '신사임당'],
'학년' : [1, 2, 3, 2, 3],
'학점' : [1.5, 2.7, 3.7, 1.9, 4.0]})
display(df)
# dept = df ['학점']. groupby(df ['학과']) #Series
dept = df.groupby(df ['학과']) #DataFrame Group By object
display(dept.get_group('컴퓨터'))
display(dept.size())
display(dept.mean())
grouping 반복 처리
import numpy as np
import pandas as pd
df = pd.DataFrame({'학과' : ['컴퓨터','철학','컴퓨터','철학','컴퓨터'],
'이름' : ['아이유','김연아','홍길동','강감찬','신사임당'],
'학년' : [1, 2, 3, 2, 3],
'학점' : [1.5, 2.7, 3.7, 1.9, 4.0]})
display(df)
for dept, group in df.groupby(df['학과']):
print(dept)
display(group)
i
mport numpy as np
import pandas as pd
df = pd.DataFrame({'학과' : ['컴퓨터','철학','컴퓨터','철학','컴퓨터'],
'이름' : ['아이유','김연아','홍길동','강감찬','신사임당'],
'학년' : [1, 2, 3, 2, 3],
'학점' : [1.5, 2.7, 3.7, 1.9, 4.0]})
display(df)
for (dept, year), group in df.groupby([df['학과'], df['학년']]):
print(dept, year)
display(group)
pandas에 대한 기본적인 사용법( Series, DataFrame)
Data를 처리하는 방법에 대해서 배웠어요!
mpg.txt라는 파일을 받아 연습을 해 보아요!
열어보면 차에 대한 정보가 나와요! csv형태
manufacturer 은 제조자 model 은 모델 displ 배기량 year 생산연도 cyl은 기통 trans auto 수동 자동 drv 전륜 후륜 사륜 cty 도시연비 hwy 고속도로 연비, fl 은 연료 type, class 자동차 종류
맨 윗줄 column 아래는 data
아래 사이트에 데이터에 대한 명세가 자세히 나와있어요!
https://rpubs.com/shailesh/mpg-exploration
RPubs - Exploration of MPG Data Set
rpubs.com
1. displ(배기량)이 4 이하인 자동차와 5 이상인 자동차 중 어떤 hwy(고속도로 연비)가 평균적으로 더 높은지 확인하세요.
'머신러닝 딥러닝' 카테고리의 다른 글
0825 지도학습(Supervised Learning) (0) | 2021.08.25 |
---|---|
0825 AI introduction (1) | 2021.08.25 |
0823 Pandas7 DataFeame의 결치처리 (0) | 2021.08.23 |
0823 Pandas6 DataFeame의 merge (0) | 2021.08.23 |
0820 Pandas5 DataFrame function (0) | 2021.08.20 |
댓글