중복데이터 제거, 값 변경

코딩다시시작·2024년 11월 4일

빅데이터분석

목록 보기
15/19

중복데이터 제거

.drop_duplicates로 제거

df.drop_duplicates(inplace=True)
  • drop_duplicates를 활용하여 중복 데이터 제거하기

값 변경

method1: replace()

import numpy as np
df['f3'] = df['f3'].replace(np.nan,0).replace('silver',1).replace('gold',2).replace('vip',3)
  • replacenp.nan을 이용해서 replace(바꾸고 싶은 값, 바꿀 값)

method2: 가중치

r1 = sum(df['f3'] == 'silver') * 1
r2 = sum(df['f3'] == 'gold') * 2
r3 = sum(df['f3'] == 'vip') * 3
  • nan은 0이라 계산 제외하고, 각각 해당하는 값의 sum은 갯수기 때문에, 해당하는 가중치를 곱해서 더함

method3: map을 이용

df['f3'] = df['f3'].map({'silver': 1, 'gold':2, 'vip': 3}).fillna(0)
  • map()을 사용해 값을 대체
  • fillna(0) 결측값을 0으로 대체

method4: np.where() 사용

df['f3'] = np.where(df['f3'] == 'silver', 1,np.where(df['f3'] == 'gold', 2,np.where(df['f3'] == 'vip', 3, 0)))
  • np.where()를 중첩하여 여러 조건 지정, silver, gold, vip을 각각 1,2,3 대체하고, 나머지 값은 0으로 설정

method5: apply()와 람다 함수

df['f3'] = df['f3'].apply(lambda x: 1 if x == 'silver' else 2 if x == 'gold' else 3 if x == 'vip' else 0)
  • apply()는 데이터프레임의 각 행이나 열에 특정 함수를 적용할 때 사용
  • lamda는 짧은 익명 함수를 만드는 방식
  • apply()를 사용해 각 값에 대해 lamda 조건문 적용

method6: fillna()와 replace() 조합

df['f3'] = df['f3'].fillna(0).replace({'silver': 1, 'gold': 2, 'vip': 3})
  • 결측값을 먼저 0으로 대체 후, replace()를 사용하여 sliver, gold, vip 값을 각각 1,2,3으로 변환
profile
gpt로 다시 배우는 개발

0개의 댓글