inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

2회 기출유형(작업형1)

2회 기출 1번 문제

해결된 질문

61

99ethan

작성한 질문수 7

0

1번 문제 코드를 짜보았는데 결과 값이 조금 다른 것 같아서 질문 드립니다

import pandas as pd
df = pd.read_csv("https://raw.githubusercontent.com/lovedlim/inf/refs/heads/main/p1/members.csv")
df.nlargest(10, 'views')
m=df.loc[21,'views']
df.iloc[:10,-1]=m
cond=df['age']>=80
df[cond]['views'].mean()

python 머신러닝 빅데이터 pandas 빅데이터분석기사

답변 2

0

퇴근후딴짓

df.iloc[:10,-1]=m

이 코드가 문제입니다.

df.nlargest(10, 'views')로 가장 큰 10개를 확인했지만

확인만 했을 뿐

df는 원래 순서대로 입니다. 그런데 iloc로 값을 대체 하면 그냥 처음부터 10번째까지 변경한 것이 반영됩니다. 큰 값 10개랑은 무관함

 

이에 한줄 한줄 결과를 출력하면서 눈으로 확인할 필요가 있어요!

0

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴입니다. 99ethan님.

주어진 문제는 ‘views’ 컬럼에서 상위 10개 데이터를 특정 값으로 대체하고, ‘age’ 컬럼에서 80 이상인 데이터의 ‘views’ 평균을 계산하는 것입니다. 코드에서 주의할 점과 해결 방법을 안내드리겠습니다.

문제 해결 과정 설명

  1. 상위 10개 데이터 처리: df.nlargest(10, 'views') 를 통해 ‘views’ 컬럼에서 상위 10개의 행을 얻는 과정 자체는 맞습니다. 하지만 이를 그냥 콘솔에 출력하는 것만으로는 데이터프레임에 변경이 적용되지 않습니다.

  2. 상위 10번째 값 대체: m=df.loc[21,'views'] 코드를 통해 상위 10번째 값을 찾고 있습니다. 이때 특정한 인덱스 값(21)을 사용하고 있는데, 이 방법은 잘못된 결과를 초래할 수 있습니다. 대신, 상위 10개의 ‘views’ 중 최솟값을 직접 구해야 합니다.

  3. 대체 적용: df.iloc[:10,-1]=m 에서 -1은 마지막 컬럼이라고 이해되지만, 명시적으로 'views'라고 쓰는 것이 분명합니다.

  4. 조건부 평균 계산: cond=df['age']>=80 에 따라 조건을 부여하고, df[cond]['views'].mean() 을 통해 평균을 계산합니다.

코드 개선사항

import pandas as pd
df = pd.read_csv("https://raw.githubusercontent.com/lovedlim/inf/refs/heads/main/p1/members.csv")

# 'views' 컬럼에서 상위 10개의 데이터를 가져온 후, 그 중 최솟값을 구합니다.
top_10_views = df.nlargest(10, 'views')['views']
min_of_top_10 = top_10_views.min()

# 상위 10개 'views' 데이터를 최솟값으로 대체합니다.
df.loc[df.nlargest(10, 'views').index, 'views'] = min_of_top_10

# 조건을 적용하여 평균값을 구합니다.
cond = df['age'] >= 80
print(df[cond]['views'].mean())

이 코드는 상위 10번째 ‘views’ 값을 직접 지정하는 대신, nlargest() 함수로 가장 큰 값 10개를 추출하여 그 중 최소값으로 대체하는 방법을 사용하여 문제를 해결합니다.

이와 유사한 문제 및 그 해결 과정에 대한 논의는 아래 링크를 통해 확인하실 수 있습니다:

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

수강 연장 가능 여부 문의

0

27

2

강의 구매했는데 교재 필수일까요

0

23

2

수강기간 연장 가부 문의드립니다.

0

21

2

수강기간 연장이 가능한지 양해를 구하며 문의를 드립니다.

0

27

2

작업형2 모의문제2에서 drop이랑 인코딩

0

34

2

인코딩을 다 꼭 해봐야하는지

0

41

2

안녕하세요? 강사님 질문있습니다.(인코딩관련)

0

58

2

이진분류에서 양성 클래스가 0일 때 평가 방법

0

46

2

원핫인코딩 전 train과 test 병합여부

0

50

2

수강기간 연장

0

69

2

29강 작업2형의 이상치 처리

0

66

2

수강기간 연장 문의드립니다!

0

65

2

9월에 실기출제기준 개정내역에 신설된부분

0

55

1

작업형2 모의문제2 결과값 관련 문의드립니다.

0

67

2

12회차 시험 실패 후 13회 도전 예정입니다.

0

55

1

random_state 값

0

73

2

강의 연장 문의 드립니다.

0

68

2

강의 연장 문의

0

61

2

오징어게임

0

71

1

object 컬럼이 여러 개인 경우 인코딩 전처리 방법

1

49

2

데이터 전처리 순서 관련

0

65

2

작업형2 모의문제 데이터 불러오기

0

64

2

강의 연장 부탁드립니다!

0

69

2

수강기간 연장 문의드립니다!

0

68

2