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

Python Pandas入門:2つのIndexオブジェクトの共通部分(積集合)を求める方法


Pandasで2つのIndexオブジェクトの共通部分(積集合)を求めるには、index1.intersection(index2)メソッドを使用します。このメソッドは、両方のインデックスに共通して含まれる要素だけを抽出した新しいIndexオブジェクトを返します。

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

import pandas as pd

2つのPandasインデックスを作成する

次に、比較対象となる2つのインデックスを作成します。

index1 = pd.Index([10, 20, 30, 40, 50])
index2 = pd.Index([80, 65, 60, 70, 55])

作成したindex1とindex2の中身を確認してみましょう。

print("Pandas Index1...\n",index1)
print("Pandas Index2...\n",index2)

共通部分(積集合)を求める

intersection()メソッドを呼び出して、2つのインデックスの共通部分を取得します。

res = index1.intersection(index2)

完全なサンプルコード

以下に、ここまでの手順をまとめたコード全体を示します。

import pandas as pd

# 2つのPandasインデックスを作成
index1 = pd.Index([10, 20, 30, 40, 50])
index2 = pd.Index([80, 65, 60, 70, 55])

# Pandasのindex1とindex2を表示
print("Pandas Index1...\n",index1)
print("Pandas Index2...\n",index2)

# Index1とIndex2の要素数を確認
print("\nNumber of elements in index1...\n",index1.size)
print("\nNumber of elements in index2...\n",index2.size)

# 共通部分(積集合)を求める
res = index1.intersection(index2)

# 両方のインデックスの共通部分を表示
print("\nThe index1 and index2 intersection...\n",res)

実行結果

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

Pandas Index1...
Int64Index([10, 20, 30, 40, 50], dtype='int64')
Pandas Index2...
Int64Index([80, 65, 60, 70, 55], dtype='int64')

Number of elements in index1...
5

Number of elements in index2...
5

The index1 and index2 intersection...
Int64Index([], dtype='int64')

解説とポイント

この例では、index1(10〜50)とindex2(55〜80)の間に重複する要素が存在しないため、intersection()の結果は空のIndexとなっています。これは正しい動作であり、共通要素がない場合は空のインデックスが返されます。

もし両方に共通する値(例えばindex2に「30」が含まれる場合)があれば、その値のみを含む新しいIndexが結果として得られます。

補足: 出力に表示されている「Int64Index」は古いバージョンのPandasでの表記です。Pandas 2.0以降では、整数型のインデックスは単に「Index」と表示されるようになりました。基本的なintersection()メソッドの使い方は変わりませんので、安心して利用できます。


  1. Python Pandas入門 – 2つのIndexオブジェクトが同一の属性と型を持つかどうかを確認する方法

    Pandasで2つのIndexオブジェクトが同じ属性やデータ型を持っているかどうかを確認したい場合は、identical()メソッドを使用します。このメソッドは「index1.identical(index2)」の形式で呼び出し、両者が完全に一致していればTrue、そうでなければFalseを返します。必要なライブラリのインポートまず、必要なライブラリをインポートします。import pandas as pdIndexオブジェクトの作成次に、比較用のPandasインデックス「index1」と「index2」を作成します。index1 = pd.Index([15, 25, 35, 45, 55]

  2. Python Pandas – データフレームのインデックスをマルチインデックス形式で表示する方法

    Pandas のデータフレームでインデックスをマルチインデックス(MultiIndex)形式で表示するには、dataframe.index を使用します。まずは、リストからなる辞書を作成してみましょう。 # リストの辞書 d = {Car: [BMW, Lexus, Audi, Mercedes, Jaguar, Bentley], Date_of_purchase: [2020-10-10, 2020-10-12, 2020-10-17, 2020-10-16, 2020-10-19, 2020-10-22]} 上記の辞書をもとに、DataFrame を作成します。 dataFra