Python
 Computer >> コンピューター >  >> プログラミング >> Python

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()と組み合わせて不要な重複データを削除したりする際に役立ちます。

  1. 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

  2. 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