강의

멘토링

커뮤니티

Cộng đồng Hỏi & Đáp của Inflearn

Hình ảnh hồ sơ của jintoniclemon4399
jintoniclemon4399

câu hỏi đã được viết

[Chuẩn bị thi thực hành Big Data phân kỳ 2026] Đỗ 100% kỳ thi thực hành Chứng chỉ Chuyên viên Phân tích Dữ liệu Lớn! Nhìn thấy được quy luật của các đề thi đã ra!

8회 1유형 1번 문제

Đã giải quyết

Viết

·

66

·

Đã chỉnh sửa

0

코딩 대한민국님의 정답과 저의 정답이 달라 왜 그럴까 살펴보았습니다.
데이터가 무작위 생성이라 그럴 수 밖에 없다는 것을 깨닳았지만,
남는 의문점이 있어 질문올립니다.

우선, 코딩 대한민국님의 정답입니다.

import pandas as pd

df1 = df.groupby('region')['coffee_servings'].mean()
df2 = df1.sort_values(ascending=False)

df3 = df.loc[ df['region'] == 'Central', :]
df3.nlargest(3, 'coffee_servings')

 

데이터 생성 코드입니다.

# 데이터 생성
regions = ['North', 'South', 'East', 'West', 'Central']
cities = ['City_' + str(i) for i in range(1, 51)]

data = {
    'city': random.choices(cities, k=100),
    'region': random.choices(regions, k=100),
    'coffee_servings': [random.randint(1, 500) for _ in range(100)]
}

regions = 100개의 observation이 North, South, East, West, Central 중 무작위 1개 값을 가짐
cities = 100개의 observation이 1~51번 중 무작위 1개 값을 가짐


낮은 확률이지만, 이렇게 생성된 observation 중
중복되어 나타나는(예: "city#40 + Central") 데이터가 존재 할 수 있다고 생각합니다.

 

import pandas as pd

df1 = df.groupby('region')['coffee_servings'].mean()
df2 = df1.sort_values(ascending=False)

df3 = df.loc[ df['region'] == 'Central', :]
df4 = df3.sort_values('city', ascending=False)
df5 = df4.groupby('city')['coffee_servings'].sum()
df6 = df5.sort_values(ascending = False)
result = df6.iloc[2]
result

따라서 이렇게 groupby로 한번 더 정리하여 풀었습니다.

이것도 정답일 수 있는 것일까요?
혹은 오답일까요?


추가) 8회 1유형 2번 문제
'전자 생산 비율'이 세 번째로 높은 국가의 '전자' 생산량을 x라고 정의하세요.
'농업' 생산량이 세 번째로 높은 국가의 '농업' 생산량을 y라고 정의하세요.

인데, 강의를 보니 코딩 대한민국님께서는 '전자 생산 비율'을 x라고 정의하신것 같습니다.
확인 부탁드립니다.

빅데이터빅데이터분석기사

Câu trả lời 1

0

codingkorea님의 프로필 이미지
codingkorea
Người chia sẻ kiến thức

좋은 질문 감사합니다!

문제를 다시 살펴보니, 질문자님께서 지적하신 부분이 매우 날카로운 통찰입니다.

문제 해석에 대하여

문제 1-2에서 "커피 소비량이 3번째로 많은 도시('city')의 커피 소비량"이라고 표현했는데, 이 표현이 두 가지로 해석될 수 있습니다:

제 정답의 의도 (nlargest 방식)

  • Central 지역의 모든 행 중에서 coffee_servings 값이 3번째로 큰 "행"을 찾는 것

  • 같은 도시가 여러 번 나타나도 각 행을 독립적으로 취급

질문자님의 접근 (groupby 방식)

  • 같은 도시가 여러 번 나타나면 합산하여, "도시별" coffee_servings 합계가 3번째로 큰 도시를 찾는 것

  • 실무적으로 더 합리적인 접근

정답 여부

질문자님의 풀이도 충분히 정답이 될 수 있습니다!

오히려 "도시의 커피 소비량"이라는 표현을 보면, 질문자님처럼 도시를 하나의 단위로 보고 groupby로 집계하는 것이 더 논리적으로 타당합니다.

다만, 제가 의도했던 것은:

  • 데이터의 각 행을 독립적인 관측치로 보고

  • 단순하게 "3번째로 큰 값"을 찾는 방식

  • 초보자 입장에서 가장 직관적이고 단순한 풀이

결론

  1. 제 정답 (nlargest): 문제를 가장 단순하게 해석한 풀이

  2. 질문자님 정답 (groupby): 실무적으로 더 정확하고 데이터의 의미를 고려한 풀이

두 가지 모두 타당한 접근이며, 이런 질문을 하신 것 자체가 데이터를 깊이 있게 이해하고 계신다는 증거입니다!

앞으로는 이런 애매함을 없애기 위해 문제를 다음과 같이 명확하게 수정하겠습니다:

  • "Central 지역에서 coffee_servings 값이 3번째로 큰 행의 값"

  • 또는 "Central 지역에서 도시별 총 coffee_servings가 3번째로 큰 도시"

좋은 질문 감사드리고, 계속 이렇게 깊이 있게 고민하시면 실력이 많이 늘 것입니다! 👍

Hình ảnh hồ sơ của jintoniclemon4399
jintoniclemon4399

câu hỏi đã được viết

Đặt câu hỏi