웹사이트 검색

Pandas 중복 행 삭제 - drop_duplicates() 함수


팬더 drop_duplicates() 함수 구문

Pandas drop_duplicates() 함수는 DataFrame에서 중복 행을 제거합니다. 구문은 다음과 같습니다.

drop_duplicates(self, subset=None, keep="first", inplace=False)

  • 하위 집합: 중복 행을 식별하기 위해 고려할 열 레이블 또는 레이블 시퀀스입니다. 기본적으로 모든 열은 중복 행을 찾는 데 사용됩니다.
  • keep: 허용되는 값은 {'first', 'last', False}, 기본값은 'first'입니다. 'first'인 경우 첫 번째 행을 제외한 중복 행이 삭제됩니다. '마지막'인 경우 마지막 행을 제외한 중복 행이 삭제됩니다. False이면 모든 중복 행이 삭제됩니다.
  • inplace: True이면 소스 DataFrame이 변경되고 None이 반환됩니다. 기본적으로 소스 DataFrame은 변경되지 않고 새 DataFrame 인스턴스가 반환됩니다.

Pandas Drop 중복 행 예

DataFrame 개체에서 중복 행을 삭제하는 몇 가지 예를 살펴보겠습니다.

1. 첫 번째 행을 유지하면서 중복 행 삭제

이는 인수가 전달되지 않은 경우의 기본 동작입니다.

import pandas as pd

d1 = {'A': [1, 1, 1, 2], 'B': [2, 2, 2, 3], 'C': [3, 3, 4, 5]}

source_df = pd.DataFrame(d1)
print('Source DataFrame:\n', source_df)

# keep first duplicate row
result_df = source_df.drop_duplicates()
print('Result DataFrame:\n', result_df)

산출:

Source DataFrame:
    A  B  C
0  1  2  3
1  1  2  3
2  1  2  4
3  2  3  5
Result DataFrame:
    A  B  C
0  1  2  3
2  1  2  4
3  2  3  5

소스 DataFrame 행 0과 1은 중복됩니다. 첫 번째 항목은 유지되고 나머지 중복 항목은 삭제됩니다.

2. 중복 삭제 및 마지막 행 유지

result_df = source_df.drop_duplicates(keep='last')
print('Result DataFrame:\n', result_df)

산출:

Result DataFrame:
    A  B  C
1  1  2  3
2  1  2  4
3  2  3  5

인덱스 '0'이 삭제되고 마지막 중복 행 '1'이 출력에 유지됩니다.

3. DataFrame에서 모든 중복 행 삭제

result_df = source_df.drop_duplicates(keep=False)
print('Result DataFrame:\n', result_df)

산출:

Result DataFrame:
    A  B  C
2  1  2  4
3  2  3  5

중복 행 '0'과 '1'은 모두 결과 DataFrame에서 삭제됩니다.

4. 특정 열을 기반으로 중복 행 식별

import pandas as pd

d1 = {'A': [1, 1, 1, 2], 'B': [2, 2, 2, 3], 'C': [3, 3, 4, 5]}

source_df = pd.DataFrame(d1)
print('Source DataFrame:\n', source_df)

result_df = source_df.drop_duplicates(subset=['A', 'B'])
print('Result DataFrame:\n', result_df)

산출:

Source DataFrame:
    A  B  C
0  1  2  3
1  1  2  3
2  1  2  4
3  2  3  5
Result DataFrame:
    A  B  C
0  1  2  3
3  2  3  5

열 'A'와 'B'는 중복 행을 식별하는 데 사용됩니다. 따라서 행 0, 1 및 2는 중복입니다. 따라서 행 1과 2는 출력에서 제거됩니다.

5. 중복 행 제거

source_df.drop_duplicates(inplace=True)
print(source_df)

산출:

   A  B  C
0  1  2  3
2  1  2  4
3  2  3  5

참조

  • Python Pandas 모듈 자습서
  • Pandas DataFrame drop_duplicates() API 문서