• 카테고리

    질문 & 답변
  • 세부 분야

    자격증 (데이터 사이언스)

  • 해결 여부

    해결됨

작업형1 모의문제 질문

23.06.08 00:29 작성 조회수 250

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'컬럼 에서 결측값 삭제한 후 시리즈를 반환합니다.