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

Python Pandas – 重複する値を完全に削除したインデックスを返す方法

重複する値を完全に削除したインデックスを取得する

Pandasのインデックスから重複する値を完全に取り除いたインデックスを取得したい場合は、index.drop_duplicates() メソッドを使用します。

通常の重複削除では最初(または最後)の要素が残りますが、keep パラメータに False を指定すると、重複しているエントリのすべての出現箇所が削除され、ユニークな値のみが残る点が特徴です。

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. 重複値をすべて削除したインデックスの取得

drop_duplicates() メソッドを使用して、重複する値を削除したインデックスを返します。keep パラメータに False を渡すことで、重複している各セットのすべての出現箇所がドロップされます。

print("\nIndex with duplicate values removed (drops all occurrences)...\n",
index.drop_duplicates(keep = False))

実行例

以下に、ここまでの手順をまとめた完全なサンプルコードを示します。

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="False" を指定すると、重複エントリのすべての出現箇所が削除される
print("\nIndex with duplicate values removed (drops all occurrences)...\n",
index.drop_duplicates(keep = False))

出力結果

上記のコードを実行すると、次のような出力が得られます。

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 (drops all occurrences)...
Index(['Car', 'Bike', 'Ship'], dtype='object')

補足:keepパラメータの違い

drop_duplicates() の挙動は keep パラメータの指定によって変わります。用途に応じて使い分けましょう。

  • keep='first'(デフォルト):最初に出現した要素を残し、以降の重複を削除します。
  • keep='last':最後に出現した要素を残し、それ以前の重複を削除します。
  • keep=False:重複している要素をすべて削除し、一度しか現れない値のみを残します。

今回の例では keep=False を指定したため、「Airplane」は完全に除外され、['Car', 'Bike', 'Ship'] のみが結果として返されています。

  1. Python Pandas入門:putmask()でマスク条件に基づく新しいインデックスを生成する方法

    はじめにマスク(条件式)を使って値を置き換えた新しいインデックスを取得したい場合は、Pandasのindex.putmask()メソッドを使用します。このメソッドは、指定した条件がTrueとなる要素を、別の値で置き換えた新しいIndexオブジェクトを返します。まず、必要なライブラリをインポートしましょう。import pandas as pdPandasインデックスの作成次に、数値を含むPandasインデックスを作成します。index = pd.Index([5, 65, 10, 17, 75, 40])作成したインデックスを表示して確認してみましょう。print(Pandas Index..

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