# 코드잇 데이터 사이언티스트 강의 듣는 중
<중복값 duplicate value 찾기>
1) .duplicated()
airbnb_df.duplicated() #true 중복 값.
--> 결측 값 여부에 따라서 true or false // 있으면 True
- 이거로는 총 개수 확인이 어렵기 때문에 .sum()을 해줌
airbnb_df.duplicated().sum()
#2
#중복을 인덱싱 한 값에서도 sum 확인 가능. 대신 인덱싱은 풀고 조건만 넣어야 함.
#first와 last의 값은 같지만, False의 값은 예외도 추가되서 더 많아짐.
airbnb_df.duplicated(subset='id').sum()
#6
--> 이건 전체 값이 중복되는 지 여부가 디폴트임.
- 인덱싱하면
airbnb_df[airbnb_df.duplicated()]
--> but, 이렇게 모든 값이 같은 경우는 드묾.
- 특정 벡터가 같은 지 확인 --> subset =''
- keep = '' --> 중복값의 첫번 째 값을 제외할 지, 마지막 값을 제외할 지, 중복 값 모두를 포함할지 결정.
#id만 같아도 중복 값으로 치는 것
# 중복 값들 중 가장 처음 값은 false를 줘서 안 나타나고 나머지만 중복으로 보는 것.
airbnb_df[airbnb_df.duplicated(subset='id')]
#같은 결과
# 디폴트가 first 가장 위의 값은 중복값이 아니라고 보는 것.
airbnb_df[airbnb_df.duplicated(subset='id', keep='first')]
#당연히 리스트로 여러 벡터에서 중복이 있는 지 여부도 확인이 가능
airbnb_df[airbnb_df.duplicated(subset=['id','n_reviews','price'])]
--> id가 같은 지 여부로 확인하는 것.
--> keep = 'first'와 같은 값으로, 이게 디폴트임.
- 겹치는 값 중 first는 제외하고 나머지 값들만 추출함.
- keep = 'last'
#겹치는 값 중 가장 마지막의 값이 중복이 아니라고 봄.
airbnb_df[airbnb_df.duplicated(subset='id', keep='last')]
--> 위의 값과 비교해보면 값이 달라졌고, 순서도 달라짐.
- keep = False
#겹치는 값 전체가 중복이라고 치는 것.
airbnb_df[airbnb_df.duplicated(subset='id', keep=False)]
--> 값이 위의 것들에 비해서 더 추가되어서 많아졌음.
<중복값 처리하기>
1) 중복값 삭제하기
- 개수가 적어서 삭제해도 큰 영향 x or 컬럼이나 로우의 값이 거의 다 결측값일 때
- .drop_duplicates()
airbnb_df.drop_duplicates()
--> rows 수 확인해보면 줄어있음.
--> 전체가 같은 값만을 의미함.
- 위에서 확인했던 것과 마찬가지로, subset='', keep=''을 파라미터로 넣어서 중복 값의 기준을 바꿀 수 있음.
#중복 값 지우기
airbnb_df.drop_duplicates(subset='id', keep='first')
airbnb_df.drop_duplicates(subset='id', keep='last')
- 삭제되었는지 확인.
airbnb_df = airbnb_df.drop_duplicates(subset='id', keep='last')
airbnb_df.duplicated().sum()
#0
#구체적으로도 가능
airbnb_df.duplicated(subset='id').sum()
#0
'Data Science > Pandas' 카테고리의 다른 글
[데이터 전처리] 대소문자 처리하기, 문자열 분리하기, 문자 제거하기 (0) | 2024.06.17 |
---|---|
[데이터 전처리] 이상치outlier 찾기, 처리하기 (0) | 2024.06.17 |
[데이터 전처리] 결측값 missing value 찾기, 처리하기 (0) | 2024.06.17 |
[Pandas] 엑셀xlsx , csv파일로 내보내기 (0) | 2024.06.15 |
[Pandas] query()로 불린 인덱싱 (2) | 2024.06.14 |