원하는 조건에 맞춰서 데이터를 삭제해보자.
일단 원본 데이터를 카피해서 df로 저장하고 describe를 해서 어떤 조건을 줄지 확인했다.
층에 min 값이 -4가 찍혀 있다! 지하 4층...?
#0층 이하인 아파트 거래 개수
df[df['층']<0]
#259 rows × 43 columns 개나 나온다
-1층까지는 반지하(?)느낌으로 말이 되는 것 같은데, -2층부터는 뭔가 이상하다.
df[df['층']<-2]
로 찍힌 아파트명을 보니 모두 같은 아파트였고, 네이버 부동산으로 확인해봤는데 2층부터 시작이다. 확실히 지하는 없는 걸로. 잘못 쓴 것 같다.
만약 이 값을 지우고 싶다면?
df = df[df['층']<-2]
-2를 2로 변경하고 싶다면?
'''
df['층'] == -2으로 '층' 열의 값이 -2인 모든 행을 선택
loc[]를 사용하여 선택된 행의 '층' 열 값을 2로 변경
대규모 데이터셋에서 효율적
'''
df.loc[df['층'] == -2, '층'] = 2
'''
replace 메서드를 사용하는 법
전체 열을 순회하면서 지정된 값을 찾아 바꾼다.
여러 값을 바꾸기 쉽다.
'''
df['층'] = df['층'].replace({-2: 2})
df['층'] = df['층'].replace({-2: 2, -3: 3, -4: 4})
중복 데이터 찾아서 삭제하기
pd.Series(df.duplicated()).value_counts()
'''
False 1104668
True 50
dtype: int64
'''
#중복데이터 확인하기
df[df.duplicated(keep=False)].sort_values(by=list(df.columns)).head(10)
#중복데이터를 맨 처음 나오는 것만 남기고 삭제
df = df.drop_duplicates(keep='first')
#결과
pd.Series(df.duplicated()).value_counts()
'''
False 1104668
dtype: int64
'''
'공부방 > Upstage AI Lab 4기' 카테고리의 다른 글
Airflow | 시작하기, 환경변수가 제대로 설정돼야 돌아감 (0) | 2024.10.14 |
---|---|
패스트캠퍼스 Upstage AI Lab 부트캠프 4기, “MLOps 프로젝트” (6) | 2024.10.13 |
판다스 | 결측치 제거팁 (1) | 2024.10.02 |
아파트실거래가 예측 코드에 MLflow 덧붙이기 (3) | 2024.10.01 |
TinyBert Model로 문장 속 감정 분석하기 (3) | 2024.09.27 |