본문 바로가기
Big Data/DataAnalysis & Manipulate

pandas 결측값 처리

by Wikinist 2023. 8. 15.

pandas는 데이터 분석과 처리를 위한 파이썬 라이브러리로, 데이터 결측값을 다루는 다양한 방법을 제공합니다. 아래에서는 pandas를 사용하여 데이터 결측값을 처리하는 몇 가지 방법을 소개하겠습니다.

결측값 확인하기

먼저 데이터프레임에서 결측값이 어떤 열에 있는지 확인합니다.

import pandas as pd

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

# 결측값 확인
print(df.isnull())
print()

# 결측값 카운팅
print(df.isnull().sum())

결측값 삭제하기

결측값이 있는 행이나 열을 삭제할 수 있습니다.

# 결측값이 있는 행 삭제
df_cleaned_rows = df.dropna()

# 결측값이 있는 열 삭제
df_cleaned_cols = df.dropna(axis=1)

결측값 대체하기

결측값을 특정 값으로 대체할 수 있습니다.

# 결측값을 0으로 대체
df_filled = df.fillna(0)

# 각 열의 평균값으로 결측값 대체
df_filled_mean = df.fillna(df.mean())

보간하기

보간은 결측값을 주변 값의 중간값으로 대체하는 것입니다.

# 선형으로 보간
df_interpolated = df.interpolate()

# 시간에 따라 보간
df_time_interpolated = df.interpolate(method='time')

결측값 예측 모델 사용하기

머신러닝 모델을 사용하여 결측값을 예측하고 대체할 수 있습니다.

Copy code
from sklearn.ensemble import RandomForestRegressor

# 결측값 예측 모델 생성
model = RandomForestRegressor()
model.fit(X_known, y_known)

# 예측된 값으로 결측값 대체
predicted_values = model.predict(X_missing)
df_predicted = df.copy()
df_predicted.loc[df_missing] = predicted_values

결측값 처리 시각화

결측값의 분포와 처리 결과를 시각화하여 확인할 수 있습니다.

import matplotlib.pyplot as plt

# 결측값 분포 시각화
plt.figure(figsize=(8, 6))
df.isnull().mean().plot(kind='bar')
plt.title('Percentage of Missing Values')
plt.show()

이 외에도 pandas에는 결측값을 처리하기 위한 다양한 함수와 옵션이 있습니다. 데이터의 특성과 분석 목적에 따라 적절한 방법을 선택하여 결측값을 처리할 수 있습니다.

해당 게시글은 ChatGPT의 도움을 받아 작성되었습니다.