Study/Python

[Python/Pandas] DataFrame에서 두 열이 모두 비어 있는 행 삭제하기 (dropna)

Super-Son 2025. 1. 19. 17:29

안녕하세요! 오늘은 Pandas를 사용하여 DataFrame에서 두 열이 모두 비어 있는 행을 삭제하는 방법을 소개합니다. 데이터 전처리 과정에서 결측값(NaN 또는 None)을 다루는 것은 매우 중요한데요, 특정 열의 값이 비어 있는 경우에만 삭제하거나, 모든 열의 값이 비어 있는 경우 삭제하는 방법을 Pandas의 dropna 메서드를 사용해 알아보겠습니다.

 


 

dropna 알아보기

소개

dropna는 Pandas DataFrame 또는 Series에서 결측값이 있는 행이나 열을 삭제하는 데 사용되는 메서드입니다. 결측값이 많은 데이터를 정리하거나, 분석에 적합한 데이터를 필터링할 때 매우 유용합니다. 이 메서드는 사용자가 원하는 기준에 따라 결측값을 삭제할 수 있도록 다양한 옵션을 제공합니다.

파라메터

파라미터 설명 기본값
axis 0은 행 삭제, 1은 열 삭제 0
how 'any'는 하나라도 비어 있으면 삭제, 'all'은 모두 비어 있어야 삭제 'any'
subset 특정 열 또는 행을 대상으로 결측값을 확인 None
inplace 원본 DataFrame을 수정할지 여부 (True는 원본 수정) FALSE

 

 


 

예제 데이터

import pandas as pd
import numpy as np

# 예제 데이터 생성
data = {
    'column1': [1, 2, np.nan, 4, np.nan],
    'column2': [np.nan, 2, 3, 4, np.nan],
    'column3': [1, 2, 3, 4, 5]
}
df = pd.DataFrame(data)

print("원본 데이터프레임:")
print(df)

 

두 열이 모두 비어 있는 행 삭제 (how = 'all')

# 'column1'과 'column2'가 모두 비어 있는 행 삭제
df_all = df.copy()
df_all.dropna(subset=['column1', 'column2'], how='all', inplace=True)

print("\n두 열이 모두 비어 있는 경우 삭제:")
print(df_all)

 

두 열 중 하나라도 비어 있는 행 삭제 (how = 'any')

# 'column1'과 'column2' 중 하나라도 비어 있는 행 삭제
df_any = df.copy()
df_any.dropna(subset=['column1', 'column2'], how='any', inplace=True)

print("\n두 열 중 하나라도 비어 있는 경우 삭제:")
print(df_any)

 


 

Pandas의 dropna 메서드는 결측값을 효율적으로 처리할 수 있는 강력한 도구입니다. subset과 how 파라미터를 적절히 활용하면 데이터 정리 및 분석에 필요한 데이터를 빠르게 필터링할 수 있습니다. 데이터 전처리가 필요한 경우, 이번 포스팅에서 소개한 방법을 꼭 활용해 보세요! 오늘도 읽어주셔서 감사합니다!