데이터 값 실수, 소수점 넷째자리 표시
pd.option.display.floa_format = '{:.2f}'.format
# 데이터 값 실수. 소수점 넷째자리까지 표시
pd.options.display.float_format = '{:.2f}'.format
월/년 별 미세먼지의 mean, min, max
df.pivot_table(index=, columns=, values, aggfunc=)
# [3-48] df_dust의 월/년 별 미세먼지의 'mean', 'min', 'max' 구하기
# pivot_table 사용, values의 경우 목록으로 지정시와 단독 지정시가 다르게 표시됨
# way 1 칼럼 명 안 보여주기
df_dust.pivot_table(index=['월'],columns=['년'],values='미세먼지(㎍/㎥)', aggfunc=['mean', 'min', 'max'])
mean min max
년 2016 2017 2018 2019 2020 2016 2017 2018 2019 2020 2016 2017 2018 2019 2020
월
1 52.75 55.73 53.88 NaN 43.18 22.00 14.00 15.00 NaN 3.00 127.00 151.00 154.00 NaN 90.00
2 48.29 49.55 56.07 NaN 41.95 9.00 23.00 22.00 NaN 7.00 124.00 135.00 127.00 NaN 103.00
3 66.85 64.54 43.90 NaN 46.35 18.00 19.00 6.00 NaN 18.00 166.00 149.00 141.00 NaN 142.00
4 73.48 59.58 51.98 NaN 45.61 21.00 14.00 5.00 NaN 11.00 270.00 134.00 117.00 NaN 126.00
[] 목록 있으면 -> 표시됨 (미세먼지)
# way 2 칼럼 명 안 보여주기
df_dust.pivot_table(index=['월'],columns=['년'],values=['미세먼지(㎍/㎥)'], aggfunc=['mean', 'min', 'max'])
mean min max
미세먼지(㎍/㎥) 미세먼지(㎍/㎥) 미세먼지(㎍/㎥)
년 2016 2017 2018 2019 2020 2016 2017 2018 2019 2020 2016 2017 2018 2019 2020
월
1 52.75 55.73 53.88 NaN 43.18 22.00 14.00 15.00 NaN 3.00 127.00 151.00 154.00 NaN 90.00
2 48.29 49.55 56.07 NaN 41.95 9.00 23.00 22.00 NaN 7.00 124.00 135.00 127.00 NaN 103.00
3 66.85 64.54 43.90 NaN 46.35 18.00 19.00 6.00 NaN 18.00 166.00 149.00 141.00 NaN 142.00
4 73.48 59.58 51.98 NaN 45.61 21.00 14.00 5.00 NaN 11.00 270.00 134.00 117.00 NaN 126.00
위에와 동일
# [3-49] df_dust에서 '측정소명'이 '강남구'인 데이터의
# 월별(index), 년별(columns), 미세먼지 농도 평균을 조회하여 temp로 저장합니다
# 가능 df_dust.loc[df_dust['측정소명']=='강남구'.:]
# mean은 생략해도 됨 -> 기본값~~
# [] 목록도 생략해도 됨
place = df_dust[df_dust['측정소명']=='강남구']
temp = place.pivot_table(index=['월'],columns=['년'],values=['미세먼지(㎍/㎥)'],aggfunc=['mean'])
temp
mean
미세먼지(㎍/㎥)
년 2016 2017 2018 2019 2020
월
1 52.68 57.61 42.55 NaN 39.00
2 48.48 52.36 50.04 NaN 38.48
3 65.65 64.82 37.10 NaN 40.77
4 78.03 58.10 44.38 NaN 38.40
5 56.50 62.16 33.00 NaN 30.81
미세먼지 농도가 가장 높은 월 위치
칼럼 : int (인티저) 타입
# [3-50] 2016년 ~ 2020년도 미세먼지 농도가 가장 높은 월의 위치
temp = df_dust.pivot_table(index=['월'],columns=['년'],values='미세먼지(㎍/㎥)',aggfunc='mean')
# int64 타입
temp.columns
Int64Index([2016, 2017, 2018, 2019, 2020], dtype='int64', name='년')
for year in [2016, 2017, 2018, 2019, 2020]:
print(year)
2016
2017
2018
2019
2020
칼럼 개수만큼 반복 -> 인덱스에서 가장 max값
가장 높은 월 : argmax()
가장 낮은 월 : argmin()
-> Series.argmax() : 가장 값이 큰 것의 integer index(월) 구하기
# for문 이용해 미세먼저 농도 높은 원
# argmax()
for year in [2016, 2017, 2018, 2019, 2020]:
idx = temp[year].argmax()
print(f'{year} 미세먼지 농도 높은 월 : {temp.index[idx]}월')
temp 데이터프레임에 비교할 칼럼 미세먼지, 미세먼지 2020, 차이 넣기
-> 과거, 현재 비교
# [3-52] 2016년 ~ 2019년 월별 미세먼지 평균을 구해 temp (DataFrame)로 저장합니다.
temp = df_dust.loc[df_dust['년']<=2019,:].groupby('월')[['미세먼지(㎍/㎥)']].mean()
# [3-53] 2020년 월별 미세먼지 평균을 구해 temp에 '미세먼지 2020' 컬럼으로 추가합니다.
temp['미세먼지 2020'] = df_dust.loc[df_dust['년']== 2020,:].groupby('월')[['미세먼지(㎍/㎥)']].mean()
# [3-54] temp에 '차이'라는 이름의 컬럼을 추가합니다.
# '차이' = '미세먼지(㎍/㎥)' - '미세먼지 2020'
temp['차이'] = temp['미세먼지(㎍/㎥)'] - temp['미세먼지 2020']
temp
미세먼지(㎍/㎥) 미세먼지 2020 차이
월
1 54.12 43.18 10.94
2 51.22 41.95 9.27
3 60.38 46.35 14.03
4 62.76 45.61 17.15
5 56.76 36.47 20.29
6 46.27 38.04 8.23
7 32.88 22.13 10.75
8 28.41 22.32 6.09
9 29.75 NaN NaN
10 32.94 NaN NaN
11 47.64 NaN NaN
12 47.02 NaN NaN
'빅데이터 분석기사 > 작업 유형 1 (pd)' 카테고리의 다른 글
문자열 분리(split) - 주소 분리하기 (0) | 2023.05.17 |
---|---|
행/열이 많은 csv 읽고 구조 확인하기 (0) | 2023.05.17 |
평균을 사용한 결측치 대체 (0) | 2023.05.16 |
5/15 결측치 제거하기 (0) | 2023.05.16 |
그래프로 결측치 확인하기 feat.heatmap (1) | 2023.05.16 |