Python Pandas – 最後の出現を除いて重複するインデックス値を示す方法
Pandasで、最後に出現した要素を除いて重複するインデックス値を示す(True/Falseで判定する)には、index.duplicated()メソッドを使用します。このとき、keepパラメータにlastを指定するのがポイントです。
duplicated()メソッドは、各要素が直前の要素と重複しているかどうかをブール値(True/False)で返します。keep='last'を指定すると、重複する値のうち最後の出現だけがFalseとなり、それ以前の重複はすべてTrueとして検出されます。
手順1:ライブラリのインポート
まず、必要なライブラリをインポートします。
import pandas as pd
手順2:重複を含むインデックスの作成
ここでは、「Airplane」が2回登場するインデックスを作成します。
index = pd.Index(['Car','Bike','Airplane','Ship','Airplane'])
手順3:インデックスの表示
作成したインデックスを表示して確認します。
print("Pandas Index with duplicates...\n",index)
手順4:duplicated(keep='last')で重複を判定
最後の出現を除いて、重複するインデックス値をTrueとして示します。keepパラメータに「last」を設定します。
print("\nIndicating duplicate values except the last occurrence...\n", index.duplicated(keep='last'))
完全なサンプルコード
以下にコード全体を示します。
import pandas as pd
# 重複を含むインデックスを作成
index = pd.Index(['Car','Bike','Airplane','Ship','Airplane'])
# インデックスを表示
print("Pandas Index with duplicates...\n",index)
# データのdtypeを取得
print("\nThe dtype object...\n",index.dtype)
# データの次元数を取得
print("\nGet the dimensions...\n",index.ndim)
# 最後の出現を除いて、重複するインデックス値をTrueとして示す
# keepパラメータに「last」を設定
print("\nIndicating duplicate values except the last occurrence...\n", index.duplicated(keep='last'))
実行結果
上記のコードを実行すると、次のような出力が得られます。
Pandas Index with duplicates... Index(['Car', 'Bike', 'Airplane', 'Ship', 'Airplane'], dtype='object') The dtype object... object Get the dimensions... 1 Indicating duplicate values except the last occurrence... [False False True False False]
補足:keepパラメータの挙動について
出力結果を見ると、5つの要素に対して [False False True False False] が返されています。「Airplane」は2回登場していますが、keep='last'を指定したため、最後に出現した「Airplane」(5番目の要素)はFalseとなり、先頭側の重複(3番目の要素)のみがTrueとして検出されました。
なお、keepパラメータには以下の値を指定できます。
- 'first'(デフォルト):最初の出現を残し、それ以降の重複をTrueとする
- 'last':最後の出現を残し、それ以前の重複をTrueとする
- False:重複するすべての要素をTrueとする
この機能は、データクレンジング時に重複ラベルを特定したり、drop_duplicates()と組み合わせて不要な重複データを削除したりする際に役立ちます。
-
Python Pandas入門:条件がFalseのインデックス値を置換する方法
Pandasで条件がFalseとなるインデックス値を置換するには、index.isin()メソッドとwhere()メソッドを組み合わせて使用します。isin()は指定した値のリストに含まれるかどうかを判定し、where()はその条件がFalseの場合に指定した別の値へ置き換えます。まず、必要なライブラリをインポートしましょう。import pandas as pdPandasインデックスの作成次に、商品名を要素とするPandasインデックスを作成します。index = pd.Index([Electronics,Accessories,Decor, Books, Toys], name =Pr
-
Python Pandas – subsetを指定してdrop_duplicates()で重複値の最後のエントリのみを表示する方法
重複する値の中から最後のエントリのみを表示したい場合は、drop_duplicates() メソッドの keep パラメータに last を指定します。drop_duplicates() は、DataFrame内の重複行を削除するためのメソッドです。 DataFrameの作成 まずは、「Car(車種)」「Place(地域)」「UnitsSold(販売台数)」の3つの列を持つDataFrameを作成しましょう。 import pandas as pd dataFrame = pd.DataFrame({ Car: [BMW, Mercedes, Lamborghini, BMW, Mer