inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

[작업형1] 연습문제 섹션11 ~ 20

수업 질문

해결된 질문

52

합격

작성한 질문수 40

0

안녕하세요

풀이 확인 후에, 제가 다르게 생각했던 부분들은 안되는지 한번 더 질문드립니다

 

  1. Section 16. 이상치, IQR

'views' 컬럼의 1사분위수, 3사분위수 그리고 IQR을 계산하시오.

이상치 조건에 맞는 데이터를 찾으시오. (이상치는 1사분위수 – (IQR 1.5)보다 작은 값과 3사분위수 + (IQR 1.5)보다 큰 값)

이상치 데이터의 'views' 컬럼 합을 정수로 구하시오.

q3 = df['views'].quantile(.75)

q1 = df['views'].quantile(.25)

IQR = q3 - q1

line1 = q1 - 1.5 * IQR

line2 = q3 + 1.5 * IQR

cond=(df['views']<line1) & (df['views']>line2)

print(int(df[cond]['views'].sum()))

이렇게 하면 안되나요?ㅠ

 

2.

Section 18. 데이터(행) 기준 평균값, 인덱싱

index '2001' 데이터(행)에서 평균보다 큰 값의 개수를 구하시오.

index '2003' 데이터(행)에서 평균보다 작은 값의 개수를 구하시오.

두 개수를 더하시오.

이 문제에서 풀이랑 같이

df=df.T

m1 = df[2001].mean() 이렇게 했는데,

---------------------------------------------------------------------------

ValueError Traceback (most recent call last)

/usr/local/lib/python3.12/dist-packages/pandas/core/indexes/range.py in get_loc(self, key)

412 try:

--> 413 return self._range.index(new_key)

414 except ValueError as err:

ValueError: 2001 is not in range

The above exception was the direct cause of the following exception:

KeyError Traceback (most recent call last)

2 frames

/usr/local/lib/python3.12/dist-packages/pandas/core/indexes/range.py in get_loc(self, key)

413 return self._range.index(new_key)

414 except ValueError as err:

--> 415 raise KeyError(key) from err

416 if isinstance(key, Hashable):

417 raise KeyError(key)

KeyError: 2001

이런 오류가 뜹니다

인덱스 2001 할때 그냥 df[2001]이렇게 하는거 맞나요?

 

  1. Section 19. 결측치(뒤에 값으로 대체), 그룹합

결측치를 바로 뒤에 있는 값으로 대체하시오. (바로 뒤의 값도 결측치일 경우, 뒤에 있는 데이터 중 가장 가까운 값으로 대체)

'city'와 'f2' 컬럼을 기준으로 그룹합을 계산하시오.

'views' 값이 세 번째로 큰 city 이름을 구하시오.

에서 df = df.bfill() 라고 적혀있던데 풀이에서

bfill 은 이전 값, ffill이 이후 값 아닌가요?

그리고,

# city와 f2기준 그룹합 계산

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

여기서 reset 다음에 한 이유가 무엇인가요?

감사합니다

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

답변 1

0

퇴근후딴짓

1 네 안됩니다. 논리적으로 잘못되었습니다.

10 이하와 100보다 큰값이 있을리가 없습니다. 교집합이 없어요 이를 합집합으로 만들기 위해 또는 으로 처리해주셔야 합니다.

cond=(df['views']<line1) | (df['views']>line2)

2 데이터를 다시 불러와서 해보시겠어요? 체크해봐도 정상입니다.

3 b가 이후 값 맞습니다.
Forward Fill

Backward Fill 입니다.

  1. 이런건 직접 눈으로 보는 것이 좋을 것 같아요 를 넣고 빼고 비교해 주세요! 그룹이 풀리면서 테이블이 예쁘게 만들어집니다:)

    .reset_index()


    뒤에 소팅이 있어 리셋시켰습니다.

수강 연장가능여부 문의드립니다!

0

16

1

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

0

22

1

최빈값

0

20

2

수강 가이드라인

0

18

2

수강 연장 가능 여부 문의

0

40

2

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

0

25

2

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

0

25

2

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

0

32

2

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

0

41

3

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

0

43

2

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

0

58

2

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

0

46

2

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

0

51

2

수강기간 연장

0

69

2

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

0

67

2

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

0

65

2

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

0

56

1

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

0

67

2

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

0

57

1

random_state 값

0

73

2

강의 연장 문의 드립니다.

0

68

2

강의 연장 문의

0

61

2

오징어게임

0

71

1

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

1

52

2