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

빅분기수강생님의 프로필 이미지
빅분기수강생

작성한 질문수

[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)

4-3 작업형 1 모의문제 8,9번

해결된 질문

작성

·

94

·

수정됨

1

안녕하세요. 수업 잘 듣고 있습니다. 문제 풀이 중에 질문이 있어서 문의 남깁니다.

 

작업형 1 모의 8번 문제도 groupby 메소드를 사용하고 ( .groupby( ).sum() )

모의 9번 문제도 groupby 메소드를 사용( .groupby( ).count() )한 다음 특정 조건의 값을 찾는 과정을 진행하는 부분에서 같아보입니다.

 

다만 8번 문제에서는 .reset_index( ) 와 .iloc[ ] 를 사용해 원하는 값을 출력했고,

9번 문제는 이걸 사용하지 않고 .index[ ] 로 사용해서 풀이를 하셧는데요.

 

그래서 스스로 연습해보려고 8번 문제에서는 .index[ ] 를 사용해서 풀어봤더니 ('대구', 0) 라고 나오더라고요. 9번 문제는 .reset_index( ) 와 .iloc[ ] 를 사용해서 정답인 "11"을 바로 출력 가능했습니다.

 

문제에서 가장 적거나(오름차순), 가장 많은(내림차순) 구하는 경우도 있지만, 몇번째 값을 찾으라는 것도 있으니

그냥 .reset_index( ) 와 .iloc[ ] 를 사용하는 법 하나만 외워서 풀어도 될까요?? 여러 방법을 알고 있으면 좋긴하겠지만, 제 경우는 서로 헷갈리는 경우가 있어 머리가 더 복잡하더라고요.

그래서 두 방법중에서는 .reset_index( ) 와 .iloc[ ] 사용법을 외우는게 괜찮지 않을까 싶어서 여쭤봅니다.

혹시 index[ ] 를 사용하는 법이 쉬우면서 범용성이 좋다면 요령을 알려주시면 감사하겠습니다

 

 

아래는 제가 연습하면서 작성한 코드입니다.

문제9 에 .reset_index( ) 와 .iloc[ ] 적용해서 품

# 문제 9
import pandas as pd 

df = pd.read_csv("members.csv")

df["subscribed"] = pd.to_datetime(df["subscribed"])

df["month"] = df["subscribed"].dt.month


df = df.groupby("month").count().reset_index()

print(df.sort_values("subscribed",ascending=True).iloc[0,0])

 

 

문제8에 .index[] 사용시 출력값이 깔끔하지 않음

# 문제 8

import pandas as pd

df = pd.read_csv("members.csv")

# print(df.head())
# print(df.isnull().sum())

df = df.fillna(method = "bfill")           # << 바로 뒤에 있는 값으로 대체 method = "bfill"       바로 앞에 있는 값 대체 시, method = "ffill"

# print(df.head())
# print(df.isnull().sum())

dfgb = df.groupby(["city", "f2"]).sum(numeric_only=True).reset_index()



## dfgb.sort_values("views",ascending=False).index[2]   # 출력값  ('대구', 0)

dfgb = dfgb.sort_values("views",ascending=False)

dfgb.sort_values("views",ascending=False).iloc[2,0]   # 출력값 '대구'

 

 

답변 1

0

퇴근후딴짓님의 프로필 이미지
퇴근후딴짓
지식공유자

문제 풀이 방법은 다양하게 있어요. index[]로 한 예로 봐주세요!!

원하는 방법을 사용하면 됩니다만 .reset_index().iloc[]가 좀 더 범용적으로 사용할 수 있을 것 같네요!! 💪 이것만 준비하시죠!!

 

빅분기수강생님의 프로필 이미지
빅분기수강생

작성한 질문수

질문하기