• 카테고리

    질문 & 답변
  • 세부 분야

    데이터 분석

  • 해결 여부

    미해결

조건[조건].index 에 대해서 질문드립니다

21.05.20 18:57 작성 조회수 115

1

지난번에 

df.drop(index = df.isnull().sum().sort_values(ascending=False) >30000, axis = 1)

로 쓰지 않느 컬럼들을 지울려고 했으나 잘되지 않아서 선생님께 질문드렸습니다.

이번에 알려주신 방법으로 다시 시도햇고 성공적이었습니다.

그런데 여기서 의문점이 생겼습니다. 

null_count = df.isnull().sum().sort_values(ascending=False) > 30000

df.drop(null_count[null_count].index, axis=1)

여기서  조건[조건].index 이것이 어떤 역활을 하는 지 이해가 조금 어렵습니다. 참/거짓 값으로 구성된 테이블에서 다시 참/거짓을 인덱스로 한다? 그렇다면 왜 이곳에서 True값만 제거 되는 것인지 이해가 안되네요 ㅠㅠㅠ

답변 1

답변을 작성해보세요.

0

안녕하세요.

제가 알림을 놓쳐서 이 질문에 답변이 늦어졌습니다. 기다리셨을텐데 죄송해요.

조건 구문을 실행하게 되면 True, False 값이 나오는데요.

여기에서는 모든 행에 대해 True, False 가 나오기 때문에 인덱스 값을 뽑으면 모든 인덱스가 나오게 됩니다.

그래서 삭제하기 위해서는 True 값에 대한 index 값만 필요하기 때문에 이때 조건[조건] 으로 인덱싱하게 되면 True 에 해당되는 서브셋만을 가져오게 됩니다.

그리고 이에 해당하는 index 값을 drop에 넣어서 삭제해 주었어요.

다른 조건식에서도 True, False로 나오는 값에 대해 인덱싱을 해서 해당 조건 값에 대한 인덱스 값만 가져오고자 할 때 해당 방법을 사용할 수 있어요. 

감사합니다.