Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Pandas에서 모든 값이 NaN인 열 한 번에 삭제하는 방법

Pandas DataFrame에서 모든 값이 NaN(결측치)인 열을 삭제하려면 dropna() 메서드를 사용하고 how 매개변수를 'all'로 설정하면 됩니다.

how='all'

1. 라이브러리 가져오기

먼저 필요한 라이브러리를 별칭(alias)과 함께 가져옵니다.

import pandas as pd
import numpy as np

2. DataFrame 생성

예제로 사용할 DataFrame을 만들어 보겠습니다. 여기서는 NumPy의 np.nan을 사용해 결측치를 설정했으며, 'Result' 열은 모든 값이 NaN입니다.

dataFrame = pd.DataFrame(
    {
        "Student": ['Jack', 'Robin', 'Ted', 'Robin', 'Scarlett', 'Kat', 'Ted'],
        "Result": [np.nan, np.nan, np.nan, np.nan, np.nan, np.nan, np.nan]
    }
)

3. dropna()로 열 삭제하기

dropna() 메서드에 필요한 매개변수를 지정하여 호출합니다. axis=1은 열을 대상으로 작업하도록 지정하는 것이고, inplace=True는 원본 DataFrame을 직접 수정하도록 하는 옵션입니다.

dataFrame.dropna(how='all', axis=1, inplace=True)

전체 예제 코드

지금까지의 내용을 종합한 전체 코드는 다음과 같습니다.

import numpy as np
import pandas as pd

# DataFrame 생성
dataFrame = pd.DataFrame(
    {
        "Student": ['Jack', 'Robin', 'Ted', 'Robin', 'Scarlett', 'Kat', 'Ted'],
        "Result": [np.nan, np.nan, np.nan, np.nan, np.nan, np.nan, np.nan]
    }
)

print("DataFrame ...\n", dataFrame)

# 모든 값이 NaN인 열 삭제
dataFrame.dropna(how='all', axis=1, inplace=True)
print("\nDataFrame ...\n", dataFrame)

실행 결과

위 코드를 실행하면 다음과 같은 결과가 출력됩니다.

DataFrame ...
     Result   Student
0      NaN      Jack
1      NaN     Robin
2      NaN       Ted
3      NaN     Robin
4      NaN  Scarlett
5      NaN       Kat
6      NaN       Ted

DataFrame ...
   Student
0     Jack
1    Robin
2      Ted
3    Robin
4 Scarlett
5      Kat
6      Ted

실행 결과를 보면 모든 값이 NaN이었던 'Result' 열이 삭제되고 'Student' 열만 남은 것을 확인할 수 있습니다.

주요 매개변수 정리

  • how='all' : 행 또는 열의 모든 값이 NaN일 때만 제거합니다. ('any'로 설정하면 하나라도 NaN이 있으면 제거됩니다.)
  • axis=1 : 열을 대상으로 작업합니다. (기본값은 0으로, 행 기준으로 동작합니다.)
  • inplace=True : 새로운 객체를 반환하지 않고 원본 DataFrame을 직접 수정합니다.