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

Python Pandas - 重複するインデックス値を検出・確認する方法

Python Pandasで重複するインデックス値を確認する方法

PandasのIndexオブジェクトに重複した値が含まれているかどうかを確認するには、index.duplicated()メソッドを使用します。このメソッドは、重複している要素をTrue、それ以外をFalseとして返します。

必要なライブラリのインポート

まず、必要なライブラリをインポートします。

import pandas as pd

重複を含むインデックスの作成

次に、重複する値を含むインデックスを作成します。ここでは「Airplane」が2回登場するようにしています。

index = pd.Index(['Car', 'Bike', 'Airplane', 'Ship', 'Airplane'])

インデックスの表示

作成したインデックスを表示して内容を確認しましょう。

print("Pandas Index with duplicates...\n", index)

重複する値の検出

duplicated()メソッドを呼び出すと、重複するインデックス値がTrueとして示され、それ以外はFalseとなります。デフォルト設定では、重複する値の最初の出現箇所はマークされず、2回目以降の出現のみがTrueになります。

print("\nIndicating duplicate values...\n", index.duplicated())

完全なコード例

以下に全体のコードを示します。

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、それ以外をFalseとして示す
# デフォルトでは重複する値の最初の出現箇所はマークされない
print("\nIndicating duplicate values...\n", index.duplicated())

実行結果

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

Pandas Index with duplicates...
Index(['Car', 'Bike', 'Airplane', 'Ship', 'Airplane'], dtype='object')

The dtype object...
object

Get the dimensions...
1

Indicating duplicate values...
[False False False False True]

結果の解説

出力結果を見ると、5番目の要素である「Airplane」(2回目の出現)だけがTrueになっていることがわかります。これは、デフォルトのkeep='first'設定により、最初に出現した「Airplane」は重複として扱われないためです。

なお、duplicated(keep='last')と指定すれば最後の出現を残して判定でき、keep=Falseと指定すればすべての重複箇所をTrueとしてマークすることも可能です。データクレンジングや前処理の際に、重複データの把握にぜひ活用してください。

  1. 【Python】Pandas DataFrameから重複行を削除する方法|drop_duplicates()の使い方

    Pandas DataFrameから重複行を削除する基本 PandasのDataFrameから重複する値(重複行)を削除するには、drop_duplicates()メソッドを使用します。このメソッドは、すべての列の値が完全に一致する行を検出し、最初に出現した行だけを残して、それ以降の重複行を取り除きます。 まず、3つのカラム(Car、Place、UnitsSold)を持つDataFrameを作成しましょう。 import pandas as pd dataFrame = pd.DataFrame({ Car: [BMW, Mercedes, Lamborghini, BMW, Mer

  2. Python Pandasで2つのインデックス値の間にあるDataFrameの行を選択する方法

    Pandasでは、スライス(slice)記法を使うことで、2つのインデックス値の間に位置する行を簡単に抽出できます。この記事では、具体的なサンプルコードとともに、その手順をわかりやすく解説します。 手順 2次元の、サイズ変更可能で異なる型のデータも格納できる表形式データとして、df を作成します。 入力用のDataFrame df を出力して確認します。 インデックスの下限値(開始位置)を変数として初期化します。 インデックスの上限値(終了位置)を別の変数として初期化します。 df[index_lower_limit:index_upper_limit] の形式でスライスし、指定した範囲の行