중복데이터 제거
.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)
replace와 np.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으로 변환