본문 바로가기

제로베이스/Python

Python 6. Pivot

파이썬 기초 익히기6  

 

Q83. Indicator을 삭제하고 First Tooltip 컬럼에서 신뢰구간에 해당하는 표현을 지워라

#1 Indicator 삭제
df.drop('Indicator',axis = 1, inplace = True) 
## axis = 0 : 행 기준 / axis = 1 : 열 기준

#2 First Tooltip에서 신뢰구간 부분 지우기
df['First Tooltip'] = df['First Tooltip'].map(lamda x : float(x.split(" ")[0]))

Ans = df
Ans.head()
df['First Tooltip'].map(lamda x : float(x.split(" ")[0])) 해석하기
1. x = df['First Tooltip']
2. x.split(" ") => x를 " "(공백)을 기준으로 나눈다
3. x.split(" ")[0] => split에 의해 나눠진 문자열 중 첫번째(0번째)를 가지고 오겠다
4. float(x.split(" ")[0]) => 3번의 결과물이 문자열이기 때문에 float함수로 실수로 만들어준다
5. map은 위 과정을 First Tooltip 컬럼 행마다 적용해주겠다는 의미

 

Q84. 년도가 2015년 이상, Dim1이 Both sexes인 케이스만 추출하라

target = df[(df.Peroid >= 2015) & (df.Dim1 == 'Both sexes')]
Ans = target
Ans.head()

 

Q85. 84번 문제에서 추출한 데이터로 아래와 같이 나라에 따른 년도별 사망률을 데이터 프레임화 하라

## dateframe.pivot(index, columns, values)
## pivot은 단순하게 데이터프레임화만 가능(집계함수 활용XX)
## target은 84번에서 만든 df
Ans = target.pivot(index='Location',cloumns='Period',values='First Tooltip')
Ans.head()

 

Q86. Dim1에 따른 년도별 사망비율의 평균을 구하라

## pivot_table은 집계함수 사용 가능(aggfunc)
Ans = df.pivot_table(index = 'Dim1',columns='Period',values='First_Tooltip',aggfunc='mean')
Ans.head()

 

Q87. 데이터에서 한국 KOR 데이터만 추출하라

kr = df[df.Country == 'KOR']
Ans = kr
Ans.head()
# kr.Country.unique()로 제대로 추출했는지 확인

 

Q88. 한국 올림픽 메달리스트 데이터에서 년도에 따른 medal 갯수를 데이터프레임화 하라

## 메달 개수를 세는 거기 때문에 values없이 바로 aggfunc = 'size'
## count를 이용하면 컬럼별로 각각의 메달 개수를 세줌
## 왜냐하면 count는 null값을 포함하지 않고 세고 컬럼별로 null값이 다르기 때문임
## size는 단순히 행,데이터의 길이를 세주는 거기 때문에 컬럼별로 셀 필요가 없고 null값도 포함해서 셈

Ans = kr.pivot_table(index = 'Year' , columns = 'Medal', aggfunc='size').fillna(0)
Ans.head()
## 컬럼 순서 변경하여 출력(메달 순으로)
# Ans[['Bronze', 'Silver', 'Gold']]
Ans[['Gold', 'Silver', 'Bronze']]

 

Q89. 전체 데이터에서 sport종류에 따른 성별수를 구하여라

Ans = df.pivot_table(index = 'Sport' , columns = Gender', aggfunc = 'size').fillna(0)
Ans.head()

 

Q90. 전체 데이터에서 Discipline종류에 따른 Medal수를 구하여라

Ans = df.pivot_table(index = 'Discipline',columns ='Medal', aggfunc = 'size')
Ans

 

 

참고)

count와 size의 차이

[파이썬] 판다스(pandas) 팁42. co.. : 네이버블로그 (naver.com)

 

[파이썬] 판다스(pandas) 팁42. count()와 size()의 차이점을 알아보자

주의깊게 살펴보지 않으면 판다스에서 size와 count의 역할이 굉장히 똑같다고 생각할 수 있다. 나도 처음...

blog.naver.com

 

pivot과 pivot_table의 차이

[Python] pivot, concat, merge (velog.io)

 

[Python] pivot, concat, merge

pivot과 pivot_table은 두 함수 모두 데이터프레임을 재구성하여 새로운 데이터프레임을 생성하는데 사용되지만, 그들 사이에는 몇 가지 중요한 차이점이 있습니다.1\. 기능 차이: pivot 함수는 단순히

velog.io

 

 

'제로베이스 > Python' 카테고리의 다른 글

Python 8. Statistics  (0) 2024.06.29
Python 7. Merge, Concat  (0) 2024.06.29
Python 5. Time_Series  (0) 2024.06.29
Python 4.Apply, Map  (0) 2024.06.28
python3. Grouping  (0) 2024.06.28