강의

멘토링

로드맵

인프런 커뮤니티 질문&답변

작성자 없음

작성자 정보가 삭제된 글입니다.

groupby 질문

작성

·

238

·

수정됨

0

# city와 f4를 기준으로 f5의 평균값을 구한 다음, f5를 기준으로 상위 7개 값을 모두 더해 출력하시오 (소수점 둘째자리까지 출력)
# - 데이터셋 : basic1.csv 
# - 오른쪽 상단 copy&edit 클릭 -> 예상문제 풀이 시작
# - File -> Editor Type -> Script


import pandas as pd

df = pd.read_csv("../input/bigdatacertificationkr/basic1.csv")
df.head()

# city와 f4별 f5의 평균 값 (멀티인덱스 출력)
df = df.groupby(['city', 'f4'])[['f5']].mean()
print(df)

 

여기서는 명확하게 그룹화 한 후에 평균값을 구하라고 명시되어 있어서 mean()을 썼지만

 

 

''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

 

# 주어진 데이터에서 상위 10개 국가의 접종률 평균과 하위 10개 국가의 접종률 평균을 구하고, 그 차이를 구해보세요

# (단, 100%가 넘는 접종률 제거, 소수 첫째자리까지 출력)

# - 데이터셋 : ../input/covid-vaccination-vs-death/covid-vaccination-vs-death_ratio.csv

# - 오른쪽 상단 copy&edit 클릭 -> 예상문제 풀이 시작

# - File -> Editor Type -> Script

import pandas as pd

df = pd.read_csv("../input/covid-vaccination-vs-death/covid-vaccination-vs-death_ratio.csv")

# print(df.head())

df2 = df.groupby('country').max() #시간에 따라 접종률이 점점 올라감

df2 = df2.sort_values(by='ratio', ascending = False)

 

여기서는 왜 groupby 뒤에 max()를 썼는지 이해를 못하겠어요,,

그리고 그 밑에 ratio 를 내림차순 정렬하는데 by= 의 의미를 모르겠어요,,

보통 내림차순 정렬은 df.sort_values('ratio', ascending=False) 로 하는데,, 여기서는 왜 by 쓴건가요?

답변 1

0

안녕하세요, 인프런 AI 인턴입니다.
님의 질문에 답변 드리겠습니다.

먼저, groupby 뒤에 max()를 사용한 이유에 대해 말씀드리면, 주어진 예시에서는 각 국가별로 시간에 따라 누적되는 접종률 데이터가 있습니다. 여기서 각 국가별 가장 최근의 접종률(즉, 가장 높은 접종률)을 찾기 위해 max() 함수를 사용한 것입니다.

by=에 대하여, sort_values() 함수에서는 정렬 기준이 되는 열을 by 인자를 통해 지정할 수 있습니다. 여러 열을 기준으로 정렬할 때는 by에 열 이름의 리스트를 제공할 수도 있습니다. 현재 예시에서는 ‘ratio’ 열만을 기준으로 정렬하기 때문에, df.sort_values('ratio', ascending=False)df.sort_values(by='ratio', ascending=False)는 동일한 결과를 출력합니다. by를 명시적으로 작성할 경우, 코드의 가독성을 높일 수 있습니다.

접종률 데이터에서는 각 국가를 그룹화한 뒤에 각 국가별로 가장 높은 접종률을 나타내는 행을 선택하기 위하여 max() 함수를 사용한 것입니다. 그리고 sort_values() 함수를 사용해서 접종률(‘ratio’)을 기준으로 내림차순 정렬하였습니다. 여기서 by=는 정렬 기준 열을 지정하는 키워드이며, ‘ratio’ 열을 기준으로 데이터프레임을 정렬하라는 의미입니다. by를 사용하는 것과 사용하지 않는 것 사이에 기능적인 차이는 없으나, 명시적으로 by=를 사용함으로써 코드를 더 명확하게 만들 수 있습니다.

이 방식을 통해 상위 10개 국가와 하위 10개 국가의 접종률을 비교하는 것이죠.

작성자 없음

작성자 정보가 삭제된 글입니다.

질문하기