본문 바로가기
[업무 지식]/Python

[Python basic] 결측치 파헤치기

by 에디터 윤슬 2024. 10. 30.
 

결측치 제거 - 열 제거하기

# 결측치 제거1 - 열 제거하기 
df3 = df3.drop('Unnamed: 4', axis=1)

# 결측치 제거2 -결측치가 있는 행들은 모두 제거 
# 원본 데이터 변경 - dropna(inplace = True)
# 원본 데이터 유지 - dropna()
df3.dropna(inplace=True)
df3.dropna()

 

결측치 대체: 최빈값

# 결측치는 카운트 되지 않는다.
# interaction type의 빈칸을 채우고 싶다
df3.groupby('Interaction type').count()
df3.groupby('Interaction type')['product id'].count().reset_index()

# 결측치가 있는 Interaction type 컬럼을 최빈값으로 대체하기 위해, 해당 컬럼의 최빈값을 구함
df3['Interaction type'].mode()

# mode 는 최빈값을 의미
# df3 의 Interaction type 컬럼을 fillna함수를 이용하여 채워주되, mode() 함수를 사용하여 최빈값으로 넣어줌
# mode 함수는 시리즈를 output으로 가집니다. 
# mode 함수는 값을 하나를 가진다. [0]을 통해 시리즈 중 단일값을 가져와야 합니다. [1]을 하면 오류가 난다. 값이 하나이기 때문에
df3 = df3['Interaction type'].fillna(df3['Interaction type'].mode()[0])

 

연산 후 인덱스 재설정

# 연산 후 인덱스 재설정
df3= df3.reset_index()

 

최빈값으로 대체된 데이터프레임 확인

# 최빈값으로 대체된 데이터프레임 확인 
df3.groupby('Interaction type').count()

 

결측치 대체: 평균, 중앙값

# str.split 을 통해 문자열을 분리하고, 그 값 중 첫번째 인덱스를 가져옴
# df['sw'] = dd['Shipping Weight'].str.split().str[1]과 비교해보세요! 
df['sw'] = df['Shipping Weight'].str.split().str[0]

# string to float, 에러무시  
df['sw'] = pd.to_numeric(df['sw'] , errors='coerce')

# 평균값 대체
# inplace=True 로 하면 원본 데이터가 바뀌게 됩니다.
df['sw'] = df['sw'].fillna(df['sw'].mean())
df.isnull().sum()

# 중간값 대체
# inplace=True 로 하면 원본 데이터가 바뀌게 됩니다.
df['sw'] = df['sw'].fillna(df['sw'].median())
df.isnull().sum()

 

바로 위 값으로 대체

# 바로 위 값으로 대체
df['sw'] = df['sw'].fillna(method='ffill')
df.isnull().sum()

바로 아래 값으로 대체

# 바로 아래 값으로 대체
df['sw'] = df['sw'].fillna(method='bfill')
#df.isnull().sum()

 

결측치 대체: group by

# group by 값으로 채워넣기 - 사전 데이터 확인
df.groupby('Is Amazon Seller')['sw'].median()

 

transform 함수 사용

#group by한 데이터를 데이터프레임의 컬럼으로 추가하기 위해 
#transform 함수 사용
df['sw'] = df['sw'].fillna(df.groupby('Is Amazon Seller')['sw'].transform('median'))

'[업무 지식] > Python' 카테고리의 다른 글

[pandas 라이브러리] DATEUTIL  (1) 2024.10.30
[Python Basic] 이상치 파헤치기  (0) 2024.10.30
[Python 기초] ②  (0) 2024.10.24
[Python 기초] ①  (0) 2024.10.24
Python / 데이터 시각화  (0) 2024.10.23