해결된 질문
작성
·
267
·
수정됨
0
작업형 1 모의고사 2에서
질문 1
0이하의 이상치 나이를 제거하기 위해서
df=df.drop(cond1) 이렇게 하면 안되는 건가요ㅠㅠ...
오류가 나더라구요 판린이 이상 질문 드립니다
수업시간엔 아래처럼 사용하셨씁니다!
cond1=df['age']<=0
df=df[~cond] 이렇게 사용하셧었는데요!!
제가 drop함수만 기억이 나더라구요!!ㅠㅠ
질문 2.
df['age'] == round( df['age'], 0) 이 0의자리? 일의자리인가요?? 이 부분을 제가 모르는 것 같은데 설명 부탁 드립니다!!
round가 반올림함수라고 알려주셨는데요. 그런데 36.3은 어떻게 거르나 싶더라구요.
36.3의 경우에
df['age'] == round( df['age'], 0) 이면...
소수 첫째짜리에서 정수까지만 나오도록 돼있는데
그러면 36.3은 못 거르는 게 아닌가 싶은데 걸러져있더라구용... 이게 어찌된 것인지 설명 부탁 드립니다!!
-판린이 드림-
답변 2
0
0
조건식을 통한 필터링은 반드시 사용할 수 있어야 합니다. drop만으론 작업형1문제를 풀기 어려워요. 더 복잡한 코드가 됩니다.
cond = df['age'] <= 0
indices_to_drop = df[cond].index
df = df.drop(indices_to_drop)
round(36.3, 0)
의 결과는 36.0
이 됩니다.
36.3 == 36.0
은 False
가 됩니다.
즉, df['age'] == round(df['age'], 0)
조건은 df['age']
에 있는 값이 정수가 아닌 경우 False
를 반환하고, 정수인 경우에는 True
를 반환합니다. 그러므로 36.3
은 이 조건에서 False
가 되어 "거르는" 목적으로 사용될 수 있습니다.