Pandas DataFrame DataFrame.drop_duplicates() 関数
-
pandas.DataFrame.drop_duplicates()
の構文 -
コード例:Pandas
DataFrame.set_index()
メソッドを使用して重複行を削除する -
コード例:パラメータ
subset
を設定するDataFrame.set_index()
メソッド -
コード例:
keep
パラメータを設定する PandasDataFrame.set_index()
メソッド -
コード例:
ignore_index
パラメータを設定するDataFrame.set_index()
メソッド
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 のいずれかを指定します。最初以外の重複をすべて削除する(keep=first )、最後以外の重複をすべて削除する(keep=first )、またはすべての重複を削除する(keep=False ) |
inplace |
論理値。True の場合、呼び出し元の DataFrame を修正します。 |
ignore_index |
論理値。True の場合、元の DataFrame のインデックスは無視されます。デフォルト値は False であり、インデックスが利用されることを意味します。 |
戻り値
inplace
が True
の場合、DataFrame
は DataFrame
から重複した行をすべて削除し、そうでない場合は 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 からすべての重複行を削除できます。
コード例:パラメータ subset
を設定する DataFrame.set_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_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
カラムの共通の値を持っています。したがって、3 行目と 4 行目は DataFrame
から削除されます; デフォルトでは、最初の重複した行は削除されません。
コード例:keep
パラメータを設定する Pandas DataFrame.set_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_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
このメソッドは DataFrame
の中で Supplier
カラムの値が一意でない行をすべて削除し、最後の重複した行のみを保持します。
ここでは、1 行目、3 行目、4 行目は Supplier
カラムの値が共通です。そのため、1 行目と 3 行目は DataFrame
から削除されます。
コード例:ignore_index
パラメータを設定する DataFrame.set_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_index
が True
に設定されているので、元の DataFrame
のインデックスは無視され、行に新しいインデックスが設定されます。
関数 inplace=True
のため、関数 ignore_index()
を呼び出した後に元の DataFrame
が変更されます。
Suraj Joshi is a backend software engineer at Matrice.ai.
LinkedIn