[Python] 04. Pandas 데이터프레임 누락된 데이터 처리하기

판다스(Pandas)는 데이터프레임에서 누락된 데이터(결측치)를 처리하는 다양한 방법을 제공합니다.
이러한 처리 방법은 데이터의 일관성을 유지하고 분석을 정확하게 수행하기 위해 중요합니다.
아래에는 판다스에서 누락된 데이터를 처리하는 주요 방법을 상세히 설명합니다.

누락된 데이터 확인

isnull() 또는 isna() 함수를 사용하여 데이터프레임에서 누락된 데이터를 확인할 수 있습니다.
이 함수는 각 요소가 누락된 데이터인지를 나타내는 불리언(Boolean) 값으로 구성된 데이터프레임을 반환합니다.
누락된 데이터는 True로 표시되고, 유효한 값은 False로 표시됩니다.

import pandas as pd
import numpy as np

# 데이터프레임 생성
data = {'A': [1, 2, np.nan, 4, 5],
        'B': [np.nan, 2, 3, np.nan, 5],
        'C': [1, 2, 3, 4, 5]}
df = pd.DataFrame(data)

# isnull() 함수를 사용하여 누락된 데이터 확인
missing_values = df.isnull()
print(missing_values)

출력 결과

       A      B      C
0  False   True  False
1  False  False  False
2   True  False  False
3  False   True  False
4  False  False  False

데이터프레임에서 누락된 데이터를 확인하면 데이터의 일관성을 파악하고 결측치를 처리하는데 도움이 됩니다.
이를 통해 분석 작업이나 데이터 정제 과정에서 필요한 처리를 수행할 수 있습니다.

누락된 데이터 대체

데이터프레임에서 누락된 데이터(결측치)를 대체하는 방법으로는 fillna() 함수를 사용할 수 있습니다.
이 함수를 사용하여 누락된 값을 원하는 값이나 통계적인 값으로 대체할 수 있습니다.
아래 예제들을 통해 데이터프레임에서 누락된 데이터를 대체하는 방법을 알려드리겠습니다.

단일 값으로 대체하기

import pandas as pd
import numpy as np

# 데이터프레임 생성
data = {'A': [1, 2, np.nan, 4, 5],
        'B': [np.nan, 2, 3, np.nan, 5],
        'C': [1, 2, 3, 4, 5]}
df = pd.DataFrame(data)

# 누락된 값을 0으로 대체
df_filled = df.fillna(0)
print(df_filled)

출력 결과

     A    B  C
0  1.0  0.0  1
1  2.0  2.0  2
2  0.0  3.0  3
3  4.0  0.0  4
4  5.0  5.0  5

평균 값으로 대체하기

# 각 열의 평균 값을 구하여 누락된 값을 대체
df_filled = df.fillna(df.mean())
print(df_filled)

출력 결과

     A    B       C
0  1.0  3.333333  1
1  2.0  2.0       2
2  3.0  3.0       3
3  4.0  3.333333  4
4  5.0  5.0       5

중앙값으로 대체하기

# 각 열의 중앙값을 구하여 누락된 값을 대체
df_filled = df.fillna(df.median())
print(df_filled)

출력 결과

     A    B  C
0  1.0  2.5  1
1  2.0  2.0  2
2  2.5  3.0  3
3  4.0  2.5  4
4  5.0  5.0  5

위의 예제들에서 fillna() 함수를 사용하여 데이터프레임의 누락된 값을 대체하였습니다.
단일 값으로 대체하거나 평균 값, 중앙값 등의 통계적인 값으로 대체할 수 있습니다.
fillna() 함수의 inplace=True 옵션을 사용하면 원본 데이터프레임을 직접 변경할 수도 있습니다.
이를 통해 데이터프레임에서 누락된 데이터를 적절하게 처리할 수 있습니다.

누락된 데이터 삭제

판다스(Pandas) 데이터프레임에서 누락된 데이터(결측치)를 삭제하는 방법으로는 dropna() 함수를 사용할 수 있습니다.
이 함수를 사용하여 누락된 값을 포함하는 행 또는 열을 삭제할 수 있습니다.
아래 예제들을 통해 데이터프레임에서 누락된 데이터를 삭제하는 방법을 알려드리겠습니다.

행 삭제

import pandas as pd
import numpy as np

# 데이터프레임 생성
data = {'A': [1, 2, np.nan, 4, 5],
        'B': [np.nan, 2, 3, np.nan, 5],
        'C': [1, 2, 3, 4, 5]}
df = pd.DataFrame(data)

# 누락된 값을 포함하는 행 삭제
df_dropped_rows = df.dropna()
print(df_dropped_rows)

출력 결과

     A    B  C
1  2.0  2.0  2
4  5.0  5.0  5

열 삭제

# 누락된 값을 포함하는 열 삭제
df_dropped_columns = df.dropna(axis=1)
print(df_dropped_columns)

출력 결과

   C
0  1
1  2
2  3
3  4
4  5

특정 열의 누락된 값을 포함하는 행 삭제

# 'B' 열의 누락된 값을 포함하는 행 삭제
df_dropped_rows_by_column = df.dropna(subset=['B'])
print(df_dropped_rows_by_column)

출력 결과

     A    B  C
1  2.0  2.0  2
2  NaN  3.0  3
4  5.0  5.0  5

위의 예제들에서 dropna() 함수를 사용하여 데이터프레임에서 누락된 값을 포함하는 행 또는 열을 삭제하였습니다.
axis=0 옵션을 사용하여 행을 삭제하며, axis=1 옵션을 사용하여 열을 삭제합니다.
subset 매개변수를 사용하여 특정 열에서 누락된 값을 포함하는 행만 삭제할 수도 있습니다.

이를 통해 데이터프레임에서 누락된 데이터를 삭제할 수 있으나, 이는 데이터의 일부가 손실되므로 신중하게 처리해야 합니다.
데이터 분석 목적에 따라 누락된 데이터를 삭제하는 것이 적절한 경우도 있을 수 있습니다.

누락된 데이터 보간

판다스(Pandas) 데이터프레임에서 누락된 데이터(결측치)를 보간하는 방법으로는 interpolate() 함수를 사용할 수 있습니다.
이 함수를 사용하면 누락된 값을 주변의 유효한 값들을 기반으로 추정하여 보간할 수 있습니다.
아래 예제를 통해 데이터프레임에서 누락된 데이터를 보간하는 방법을 알려드리겠습니다.

import pandas as pd
import numpy as np

# 데이터프레임 생성
data = {'A': [1, 2, np.nan, 4, 5],
        'B': [np.nan, 2, 3, np.nan, 5],
        'C': [1, 2, 3, 4, 5]}
df = pd.DataFrame(data)

# 누락된 값을 보간하여 대체
df_interpolated = df.interpolate()
print(df_interpolated)

출력 결과

     A    B  C
0  1.0  NaN  1
1  2.0  2.0  2
2  3.0  3.0  3
3  4.0  4.0  4
4  5.0  5.0  5

위의 예제에서 interpolate() 함수를 사용하여 데이터프레임의 누락된 값을 보간하였습니다.
이 함수는 누락된 값을 주변의 유효한 값들을 기반으로 선형적으로 또는 다항식으로 추정하여 보간합니다.
보간된 결과는 NaN 대신 추정된 값으로 대체됩니다.

interpolate() 함수에는 다양한 매개변수가 있어서 세부적인 보간 방법을 지정할 수도 있습니다.
예를 들어, method 매개변수를 사용하여 보간 방법을 선택할 수 있습니다.
일반적으로 선형적인 보간을 수행하기 때문에 method='linear'가 기본 설정입니다.
다른 보간 방법으로는 ‘polynomial’ (다항식 보간), ‘spline’ (스플라인 보간), ‘time’ (시계열 보간) 등이 있습니다.

interpolate() 함수를 사용하여 데이터프레임에서 누락된 값을 보간하면 데이터의 일관성을 유지하면서 결측치를 대체할 수 있습니다.
보간 방법은 데이터의 특성과 분석 목적에 따라 선택하면 됩니다.

누락된 데이터 채우기

판다스(Pandas) 데이터프레임에서 누락된 데이터(결측치)를 채우는 방법으로는 fillna() 함수를 사용할 수 있습니다.
이 함수를 사용하여 누락된 값을 원하는 값으로 채울 수 있습니다.
아래 예제들을 통해 데이터프레임에서 누락된 데이터를 채우는 방법을 알려드리겠습니다.

단일 값으로 채우기

import pandas as pd
import numpy as np

# 데이터프레임 생성
data = {'A': [1, 2, np.nan, 4, 5],
        'B': [np.nan, 2, 3, np.nan, 5],
        'C': [1, 2, 3, 4, 5]}
df = pd.DataFrame(data)

# 누락된 값을 0으로 채우기
df_filled = df.fillna(0)
print(df_filled)

출력 결과

     A    B  C
0  1.0  0.0  1
1  2.0  2.0  2
2  0.0  3.0  3
3  4.0  0.0  4
4  5.0  5.0  5

앞쪽 값으로 채우기

# 누락된 값을 앞쪽(이전)의 유효한 값으로 채우기
df_filled = df.fillna(method='ffill')
print(df_filled)

출력 결과

     A    B  C
0  1.0  NaN  1
1  2.0  2.0  2
2  2.0  3.0  3
3  4.0  3.0  4
4  5.0  5.0  5

뒤쪽 값으로 채우기

# 누락된 값을 뒤쪽(다음)의 유효한 값으로 채우기
df_filled = df.fillna(method='bfill')
print(df_filled)

출력 결과

     A    B  C
0  1.0  2.0  1
1  2.0  2.0  2
2  4.0  3.0  3
3  4.0  5.0  4
4  5.0  5.0  5

위의 예제에서 fillna() 함수를 사용하여 데이터프레임의 누락된 값을 채웠습니다.
단일 값으로 채울 수도 있으며, 앞쪽(이전)의 유효한 값이나 뒤쪽(다음)의 유효한 값으로 채울 수도 있습니다.
method 매개변수를 사용하여 채우는 방향을 지정할 수 있습니다.

누락된 데이터를 적절하게 채워서 데이터의 일관성을 유지하면서 분석 작업을 수행할 수 있습니다.
데이터의 특성과 분석 목적에 따라 적합한 값을 선택하여 누락된 데이터를 채우면 됩니다.

이 외에도 판다스는 누락된 데이터 처리를 위한 다양한 기능을 제공합니다.
replace(), drop_duplicates(), 조건에 따른 데이터 대체 등을 사용하여 누락된 데이터를 처리할 수도 있습니다.
데이터에 따라 적합한 방법을 선택하여 누락된 데이터를 처리하면 됩니다.

댓글 달기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

위로 스크롤