데이터 분석을 하다보면 특정 컬럼의 중복값을 제거해야 할 때가 있는데, pandas의 duplicates, drop_duplicates 메소드를 사용할 수 있다.
duplicates( [ 'column' ], keep='first | last | False' ) : [ 'column' ] 에 대해서 중복이 있는지 확인
drop_duplicates( ['column'] , keep='first | last | False') : [ 'column' ] 중복값 처리
예제) 일자별 품목에 대한 금액 변동 DataFrame
product = [['2020-01-01','T10001', 20000, 'BLACK'],
['2020-01-01','S10001', 10000, 'WHITE'],
['2020-01-01','S20001', 12000, 'PINK'],
['2020-01-01','T20003', 30000, 'BLACK'],
['2020-01-05','S10001', 9000, 'WHITE'],
['2020-01-20','T10001', 19000, 'BLACK'],
['2020-01-10','T20003', 25000, 'BLACK'],
['2020-01-22','T10001', 17500, 'BLACK'],
['2020-01-19','S20001', 10000, 'WHITE']]
import pandas as pd
df = pd.DataFrame(product, columns=['regdate','product_code','price', 'color'])
df
product_code 중복이 있는지 확인
# keep = 'first' 첫 번째값은 False, 두 번째 값부터는 True 반환
df.duplicated(['product_code'], keep='first')
# keep = 'last' first의 반대
df.duplicated(['product_code'], keep='last')
# keep = False 처음과 끝과 관계없이 중복이면 True
df.duplicated(['product_code'], keep=False)
product_code 컬럼 중복처리
# keep = 'first' 중복값 중 처음값만 표시
df.drop_duplicates(['product_code'], keep='first')
# keep = 'last' 중복값 중 마지막값만 표시
df.drop_duplicates(['product_code'], keep='last')
# keep = False 중복값은 모두 제거. 유일한 값만 표시
df.drop_duplicates(['product_code'], keep=False)
'Python > Python For Analytics' 카테고리의 다른 글
[Python] matplotlib - 그래프에 값 표시 하기 (1) | 2020.08.02 |
---|---|
[Python] matplotlib - lollipop graph (0) | 2020.07.15 |
[Python] matplotlib - pie graph (0) | 2020.07.09 |
[Python] matplotlib - angle line graph (0) | 2020.07.08 |
[Python] Pandas iis-log DataFrame 접속자IP 국가식별 컬럼 추가 (0) | 2020.02.28 |
[Python] split을 이용하여 pandas 컬럼 분리하기 (0) | 2020.02.25 |
[Python] replacement of Pandas dataframe NaN value (0) | 2020.02.16 |
[Python] padnas dataframe URL Decode (2) | 2020.02.16 |