인프런 커뮤니티 질문&답변
수업 질문
해결된 질문
작성
·
19
·
수정됨
0
안녕하세요
풀이 확인 후에, 제가 다르게 생각했던 부분들은 안되는지 한번 더 질문드립니다
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]이렇게 하는거 맞나요?
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 다음에 한 이유가 무엇인가요?
감사합니다
답변 1
0
1 네 안됩니다. 논리적으로 잘못되었습니다.
10 이하와 100보다 큰값이 있을리가 없습니다. 교집합이 없어요 이를 합집합으로 만들기 위해 또는 으로 처리해주셔야 합니다.
cond=(df['views']<line1) | (df['views']>line2)2 데이터를 다시 불러와서 해보시겠어요? 체크해봐도 정상입니다.
3 b가 이후 값 맞습니다.
Forward Fill
Backward Fill 입니다.
이런건 직접 눈으로 보는 것이 좋을 것 같아요 를 넣고 빼고 비교해 주세요! 그룹이 풀리면서 테이블이 예쁘게 만들어집니다:)
.reset_index()
뒤에 소팅이 있어 리셋시켰습니다.





