Python Pandas入門:drop_duplicates()で重複値を削除したインデックスを作成する方法(最後の出現を保持)
Pandasのインデックスから重複する値を削除し、最後の出現を保持した新しいインデックスを取得したい場合は、index.drop_duplicates()メソッドを使用します。このとき、keepパラメータに'last'を指定することで、各重複エントリのセットに対して最後に出現した要素が残ります。
必要なライブラリのインポート
まず、必要なライブラリをインポートします。
import pandas as pd
重複を含むインデックスの作成
次に、重複する値を含むインデックスを作成します。ここでは「Airplane」が2回出現するようにしています。
index = pd.Index(['Car','Bike','Airplane','Ship','Airplane'])
作成したインデックスを表示してみましょう。
print("Pandas Index with duplicates...\n",index)
重複値の削除(最後の出現を保持)
drop_duplicates()メソッドを使って重複値を削除します。keep='last'を指定すると、重複している各エントリのセットについて、最初ではなく最後に出現した要素が保持されます。
print("\nIndex with duplicate values removed (keeping the last occurrence)...\n",index.drop_duplicates(keep='last'))
keepパラメータの挙動について
なお、keepパラメータには以下の3つの値を指定できます。
- 'first'(デフォルト):最初の出現を保持します
- 'last':最後の出現を保持します
- False:重複するすべての要素を削除します
本記事の例では「Airplane」が位置2と位置4の両方に存在するため、keep='last'を指定すると位置4(最後)の「Airplane」が結果に残り、順序も元のインデックスの並び順が維持されます。
完全なコード例
以下に、実行可能なサンプルコード全体を示します。
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 bytes...\n",index.nbytes)
# データの次元数を取得
print("\nGet the dimensions...\n",index.ndim)
# 重複値を削除したインデックスを返す
# keep='last' を指定することで、重複エントリの最後の出現が保持される
print("\nIndex with duplicate values removed (keeping the last occurrence)...\n",index.drop_duplicates(keep='last'))
実行結果
上記のコードを実行すると、次のような出力が得られます。
Pandas Index with duplicates... Index(['Car', 'Bike', 'Airplane', 'Ship', 'Airplane'], dtype='object') The dtype object... object Get the bytes... 40 Get the dimensions... 1 Index with duplicate values removed (keeping the last occurrence)... Index(['Car', 'Bike', 'Ship', 'Airplane'], dtype='object')
まとめ
このように、drop_duplicates(keep='last')を使うことで、重複する値を削除しつつ各値の最後の出現を保持したインデックスを簡単に作成できます。出力結果を見ると、「Airplane」は最後に出現した位置が保持され、それ以外の重複が取り除かれていることが確認できます。データクレンジングや前処理の際に非常に便利な機能なので、ぜひ活用してください。
-
Python Pandas – index.take()でインデックス位置を指定して新しいインデックスを返す方法
Pandasのindex.take()メソッドとはPandasで、指定したインデックス位置にある値だけを抜き出し、その新しいIndexオブジェクトを返したい場合は、index.take()メソッドを使用します。まずは、必要なライブラリをインポートしましょう。import pandas as pdPandasインデックスの作成次に、商品名を要素とするPandasインデックスを作成します。index = pd.Index([Electronics,Accessories,Decor, Books, Toys], name =Products)Pandasインデックスの表示print(Pandas
-
Python・PandasでIndexの最大値を取得する方法|index.max()の使い方
PandasのIndexオブジェクトから最大値を取得したい場合は、index.max() メソッドを使用します。このメソッドは、インデックスに含まれる要素の中から最も大きい値を1つ返してくれます。必要なライブラリのインポートまず、Pandasをインポートします。import pandas as pdPandasインデックスの作成次に、数値を含むPandasのインデックスを作成します。index = pd.Index([10, 20, 70, 40, 90, 50, 25, 30])作成したインデックスを表示してみましょう。print(Pandas Index...\n, index)そして、m