-
파이썬 Pandas DataFrame 칼럼별 결측값 대체<Python>/[DataFrame] 2023. 3. 8. 17:10728x90
데이터프레임에는 여러 개의 칼럼이 존재할 수 있습니다. 각각의 칼럼은 다양한 방식으로 결측값이 처리될 수 있습니다. 이번에는 데이터프레임의 여러 개의 칼럼에 대해 결측값을 다르게 대체하는 방법에 대해 알아보겠습니다.
데이터프레임의 여러 개의 칼럼에 대해 결측값을 다르게 대체하는 방법은 크게 두 가지로 나눌 수 있습니다. 첫 번째 방법은 각각의 칼럼에 대해 개별적으로 대체하는 것이고, 두 번째 방법은 특정 규칙을 적용하여 모든 칼럼에 대해 일괄적으로 대체하는 것입니다.
1. 각각의 칼럼에 대해 개별적으로 대체하기
데이터프레임의 각각의 칼럼에 대해 개별적으로 결측값을 대체하는 방법은 fillna() 메소드를 이용하는 것입니다. fillna() 메소드를 이용하여 각 칼럼에 대해 개별적으로 결측값을 대체할 수 있습니다. 예를 들어, col1 칼럼에는 평균값, col2 칼럼에는 중앙값, col3 칼럼에는 최빈값으로 결측값을 대체하는 코드는 다음과 같습니다.
import pandas as pd import numpy as np df = pd.read_csv('data.csv') df['col1'] = df['col1'].fillna(df['col1'].mean()) df['col2'] = df['col2'].fillna(df['col2'].median()) df['col3'] = df['col3'].fillna(df['col3'].mode().iloc[0])
위 코드에서 fillna() 메소드에 전달된 값이 df['col1'].mean(), df['col2'].median(), df['col3'].mode().iloc[0]인데, 이 값은 각각 col1 칼럼의 평균값, col2 칼럼의 중앙값, col3 칼럼의 최빈값입니다.
728x902. 모든 칼럼에 대해 일괄적으로 대체하기
데이터프레임의 모든 칼럼에 대해 일괄적으로 결측값을 대체하는 방법은 SimpleImputer 클래스를 이용하는 것입니다. SimpleImputer 클래스를 이용하여 각 칼럼의 결측값을 특정 규칙에 따라 일괄적으로 대체할 수 있습니다. 예를 들어, 평균값으로 대체하는 경우 다음과 같이 코드를 작성할 수 있습니다.
from sklearn.impute import SimpleImputer import pandas as pd df = pd.read_csv('data.csv') imputer = SimpleImputer(strategy='mean') imputed_df = pd.DataFrame(imputer.fit_transform(df)) imputed_df.columns = df.columns
위 코드에서 SimpleImputer 클래스의 strategy 매개변수에 'mean'을 전달하여 평균값으로 결측값을 대체하도록 설정합니다. 나머지 칼럼에 대해서도 같은 방식으로 대체할 수 있습니다. 예를 들어, 중앙값으로 대체하는 경우 다음과 같이 코드를 작성할 수 있습니다.
imputer = SimpleImputer(strategy='median') imputed_df = pd.DataFrame(imputer.fit_transform(df)) imputed_df.columns = df.columns
위 코드에서 SimpleImputer 클래스의 strategy 매개변수에 'median'을 전달하여 중앙값으로 결측값을 대체하도록 설정합니다.
따라서, 데이터프레임의 모든 칼럼에 대해 일괄적으로 결측값을 대체하는 방법은 SimpleImputer 클래스를 이용하여 각 칼럼의 결측값을 특정 규칙에 따라 일괄적으로 대체할 수 있습니다.
728x90'<Python> > [DataFrame]' 카테고리의 다른 글
파이썬 Pandas DataFrame .fillna, .interpolate (0) 2023.03.08 파이썬 Pandas DataFrame .digitze vs .cut (0) 2023.03.08 파이썬 Pandas DataFrame .iter (0) 2023.03.08 파이썬 Pandas DataFrame .sample (0) 2023.03.08 파이썬 Pandas DataFrame 칼럼 다루기 (0) 2023.03.08