인프런 커뮤니티 질문&답변

김태범님의 프로필 이미지
김태범

작성한 질문수

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

작업형1 모의문제1

작업형1 모의문제 질문

해결된 질문

작성

·

315

1

  1. 문제1에서 df = df[:int(len(df) * 0.7)] 부분을

    df = df.loc[:int(len(df) * 0.7)] 로 코딩했더니 답이 다르게 나옵니다. loc는 인덱스가 50이 있는 행까지만 출력되기에 70%의 데이터개수를 할때는 loc가 부적합한건가요?

     

  2. 문제2에서 df = df.dropna(subset=['f1']) 부분을 저는 df = df['f1'].dropna() 라고 코딩했더니 df.shape이 (69,) 로 나옵니다. df = df['f1'].dropna() 이건 해당 컬럼에 결측치가 있는 행을 삭제하는게 아닌가요?

     

답변 1

2

퇴근후딴짓님의 프로필 이미지
퇴근후딴짓
지식공유자

  1. loc는 iloc와 달리 마지막 인덱스를 포함하고 있어요! 50을 포함하고 있습니다. 만약 사용한다면 index가 순서대로 있다는 가정을 두고 int(len(df) * 0.7)-1이 되겠네요!! 인덱스가 순서대로가 아닐 수도 있어 숫자일땐 iloc활용을 추천합니다.

  2. 다른 코드입니다. df.dropna(subset=['f1'])는 df 전체 데이터 프레임을 대상으로 결측값(행)삭제가 됩니다. df['f1'].dropna()는 'f1'컬럼 에서 결측값 삭제한 후 시리즈를 반환합니다.

김태범님의 프로필 이미지
김태범

작성한 질문수

질문하기