Pandas DataFrame에서 중복된 행을 제거하려면 drop_duplicates() 메서드를 사용하면 됩니다. 이 메서드는 모든 열의 값이 완전히 동일한 중복 행을 찾아 제거하고, 첫 번째로 등장한 행만 남겨둡니다.
DataFrame 생성하기
먼저 예제로 사용할 3개의 열(Car, Place, UnitsSold)을 가진 DataFrame을 만들어 보겠습니다.
dataFrame = pd.DataFrame({
'Car': ['BMW', 'Mercedes', 'Lamborghini', 'BMW', 'Mercedes', 'Porsche'],
'Place': ['Delhi', 'Hyderabad', 'Chandigarh', 'Delhi', 'Hyderabad', 'Mumbai'],
'UnitsSold': [95, 70, 80, 95, 70, 90]
})위 DataFrame을 보면 BMW-Delhi-95와 Mercedes-Hyderabad-70 조합이 각각 두 번씩 나타나는 것을 확인할 수 있습니다. 이제 drop_duplicates()를 호출하여 중복 값을 제거합니다.
dataFrame = dataFrame.drop_duplicates()
전체 예제 코드
다음은 중복 제거 전후의 데이터 변화를 확인할 수 있는 전체 코드입니다.
import pandas as pd
# DataFrame 생성
dataFrame = pd.DataFrame({
'Car': ['BMW', 'Mercedes', 'Lamborghini', 'BMW', 'Mercedes', 'Porsche'],
'Place': ['Delhi', 'Hyderabad', 'Chandigarh', 'Delhi', 'Hyderabad', 'Mumbai'],
'UnitsSold': [95, 70, 80, 95, 70, 90]
})
print("Dataframe...\n", dataFrame)
# Car 열의 빈도수 계산
count = dataFrame['Car'].value_counts()
print("\nCount in column Car")
print(count)
# 중복 값 제거
dataFrame = dataFrame.drop_duplicates()
print("\nUpdated DataFrame after removing duplicates...\n", dataFrame)
# 중복 제거 후 Car 열의 빈도수 다시 계산
count = dataFrame['Car'].value_counts()
print("\nCount in column Car")
print(count)실행 결과
위 코드를 실행하면 다음과 같은 출력 결과를 얻을 수 있습니다.
Dataframe...
Car Place UnitsSold
0 BMW Delhi 95
1 Mercedes Hyderabad 70
2 Lamborghini Chandigarh 80
3 BMW Delhi 95
4 Mercedes Hyderabad 70
5 Porsche Mumbai 90
Count in column Car
BMW 2
Mercedes 2
Porsche 1
Lamborghini 1
Name: Car, dtype: int64
Updated DataFrame after removing duplicates...
Car Place UnitsSold
0 BMW Delhi 95
1 Mercedes Hyderabad 70
2 Lamborghini Chandigarh 80
5 Porsche Mumbai 90
Count in column Car
BMW 1
Porsche 1
Lamborghini 1
Mercedes 1
Name: Car, dtype: int64결과 분석
출력 결과를 살펴보면 다음과 같은 변화가 있었음을 알 수 있습니다.
중복 제거 전: 총 6개의 행이 있으며, BMW와 Mercedes가 각각 2번씩 등장합니다.
중복 제거 후: 인덱스 3과 4의 행(완전히 동일한 내용)이 삭제되어 4개의 행만 남았고, 모든 차량이 1번씩만 등장합니다.
참고: drop_duplicates()의 유용한 옵션
drop_duplicates() 메서드는 몇 가지 유용한 매개변수를 지원합니다.
subset: 특정 열만 기준으로 중복을 판단하고 싶을 때 사용합니다. 예를 들어 dataFrame.drop_duplicates(subset=['Car'])처럼 작성하면 Car 열의 값이 동일한 행들을 제거합니다.
keep: 어떤 행을 남길지 결정합니다. 기본값은 'first'(첫 번째 행 유지)이며, 'last'(마지막 행 유지) 또는 False(중복된 모든 행 제거)로 설정할 수 있습니다.
inplace: True로 설정하면 원본 DataFrame을 직접 수정하여 새로운 객체를 반환하지 않습니다.