해결된 질문
작성
·
100
·
수정됨
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[]
가 좀 더 범용적으로 사용할 수 있을 것 같네요!! 💪 이것만 준비하시죠!!