Pandas DataFrame DataFrame.drop_duplicates() 함수

Suraj Joshi 2023년1월30일
  1. pandas.DataFrame.drop_duplicates()의 구문 :
  2. 예제 코드: Pandas DataFrame.set_index()메서드를 사용하여 중복 행 제거
  3. 예제 코드: Pandas DataFrame.set_index()메서드에서subset 매개 변수 설정
  4. 예제 코드: Pandas DataFrame.set_index() 메서드에서keep 매개 변수 설정
  5. 예제 코드: Pandas DataFrame.set_index()메서드에서ignore_index 매개 변수 설정
Pandas DataFrame DataFrame.drop_duplicates() 함수

Python Pandas DataFrame.drop_duplicates() 함수는DataFrame.

pandas.DataFrame.drop_duplicates()의 구문 :

DataFrame.drop_duplicates(subset: Union[Hashable, Sequence[Hashable], NoneType]=None,
                          keep: Union[str, bool]='first',
                          inplace: bool=False,
                          ignore_index: bool=False)

매개 변수

subset 열 레이블 또는 레이블 시퀀스. 중복을 식별하는 동안 고려해야 할 열
keep first,last 또는False. first (keep = first)를 제외한 모든 중복 항목 삭제, last (keep = first)를 제외한 모든 중복 항목 삭제 또는 모든 중복 항목 삭제 (keep = False)
inplace 부울. True인 경우 호출자 DataFrame을 수정합니다.
ignore_index 부울. True이면 원본 DataFrame의 색인이 무시됩니다. 기본값은 색인이 사용됨을 의미하는 False입니다.

반환

inplaceTrue이면DataFrameDataFrame에서 모든 중복 행을 제거합니다. 그렇지 않으면 None.

예제 코드: Pandas DataFrame.set_index()메서드를 사용하여 중복 행 제거

import pandas as pd
fruit_list = [ ('Orange', 34, 'Yes' ,'ABC') ,
             ('Mango', 24, 'No','XYZ' ) ,
             ('banana', 14, 'No','BCD' ) ,
            ('Orange', 34, 'Yes' ,'ABC') ]

df = pd.DataFrame(fruit_list, 
                  columns = ['Name',
                             'Price',
                             'In_Stock',
                             'Supplier'])

print("DataFrame:")
print(df)

df_unique=df.drop_duplicates() 

print("DataFrame with Unique Rows:")
print(df_unique)

출력:

DataFrame:
     Name  Price In_Stock Supplier
0  Orange     34      Yes      ABC
1   Mango     24       No      XYZ
2  banana     14       No      BCD
3  Orange     34      Yes      ABC
DataFrame with Unique Rows:
     Name  Price In_Stock Supplier
0  Orange     34      Yes      ABC
1   Mango     24       No      XYZ
2  banana     14       No      BCD

원래DataFrame은 1 번째와 4 번째 행이 동일합니다.

drop_duplicates()메소드를 사용하여 DataFrame에서 모든 중복 행을 제거 할 수 있습니다.

예제 코드: Pandas DataFrame.set_index()메서드에서subset 매개 변수 설정

import pandas as pd
fruit_list = [ ('Orange', 34, 'Yes' ,'ABC') ,
             ('Mango', 24, 'No','XYZ' ) ,
             ('banana', 14, 'No','ABC' ) ,
            ('Orange', 34, 'Yes' ,'ABC') ]

df = pd.DataFrame(fruit_list, 
                  columns = ['Name',
                             'Price',
                             'In_Stock',
                             'Supplier'])

print("DataFrame:")
print(df)

df_unique=df.drop_duplicates(subset ="Supplier") 

print("DataFrame with Unique vales of Supplier Column:")
print(df_unique)

출력:

DataFrame:
     Name  Price In_Stock Supplier
0  Orange     34      Yes      ABC
1   Mango     24       No      XYZ
2  banana     14       No      ABC
3  Orange     34      Yes      ABC
DataFrame with Unique vales of Supplier Column:
     Name  Price In_Stock Supplier
0  Orange     34      Yes      ABC
1   Mango     24       No      XYZ

이 메소드는 Supplier열의 고유 한 값이없는 DataFrame의 모든 행을 제거합니다.

여기에서 1, 3, 4 행은 Supplier열의 공통 값을 갖습니다. 따라서 세 번째 및 네 번째 행은DataFrame에서 제거됩니다. 기본적으로 첫 번째 중복 행은 제거되지 않습니다.

예제 코드: Pandas DataFrame.set_index() 메서드에서keep 매개 변수 설정

import pandas as pd
fruit_list = [ ('Orange', 34, 'Yes' ,'ABC') ,
             ('Mango', 24, 'No','XYZ' ) ,
             ('banana', 14, 'No','ABC' ) ,
            ('Orange', 34, 'Yes' ,'ABC') ]

df = pd.DataFrame(fruit_list, 
                  columns = ['Name',
                             'Price',
                             'In_Stock',
                             'Supplier'])

print("DataFrame:")
print(df)

df_unique=df.drop_duplicates(subset ="Supplier",keep="last") 

print("DataFrame with Unique vales of Supplier Column:")
print(df_unique)

출력:

DataFrame:
     Name  Price In_Stock Supplier
0  Orange     34      Yes      ABC
1   Mango     24       No      XYZ
2  banana     14       No      ABC
3  Orange     34      Yes      ABC
DataFrame with Unique vales of Supplier Column:
     Name  Price In_Stock Supplier
1   Mango     24       No      XYZ
3  Orange     34      Yes      ABC

이 메서드는Supplier 열의 고유 한 값이없는DataFrame의 모든 행을 제거하고 마지막 중복 행만 유지합니다.

여기에서 1, 3, 4 번째 행은 Supplier열의 공통 값을 갖습니다. 따라서 첫 번째 및 세 번째 행은DataFrame에서 제거됩니다.

예제 코드: Pandas DataFrame.set_index()메서드에서ignore_index 매개 변수 설정

import pandas as pd
fruit_list = [ ('Orange', 34, 'Yes' ,'ABC') ,
             ('Mango', 24, 'No','XYZ' ) ,
             ('banana', 14, 'No','ABC' ) ,
            ('Orange', 34, 'Yes' ,'ABC') ]

df = pd.DataFrame(fruit_list, 
                  columns = ['Name',
                             'Price',
                             'In_Stock',
                             'Supplier'])

print("DataFrame:")
print(df)

df.drop_duplicates(subset ="Supplier",keep="last",inplace=True,ignore_index=True) 

print("DataFrame with Unique vales of Supplier Column:")
print(df)

출력:

DataFrame:
     Name  Price In_Stock Supplier
0  Orange     34      Yes      ABC
1   Mango     24       No      XYZ
2  banana     14       No      ABC
3  Orange     34      Yes      ABC
DataFrame with Unique vales of Supplier Column:
     Name  Price In_Stock Supplier
0   Mango     24       No      XYZ
1  Orange     34      Yes      ABC

여기서ignore_indexTrue로 설정되어 있으므로 원래DataFrame의 색인은 무시되고 행에 새 색인이 설정됩니다.

inplace = True 함수로 인해ignore_index()함수를 호출 한 후 원래DataFrame이 수정됩니다.

작가: Suraj Joshi
Suraj Joshi avatar Suraj Joshi avatar

Suraj Joshi is a backend software engineer at Matrice.ai.

LinkedIn

관련 문장 - Pandas DataFrame