Python – intersection()を使って2つのPandas DataFrameの共通列を取得する方法
2つのDataFrame間で共通する列(カラム)を取得するには、intersection()メソッドを使用します。このメソッドはIndexオブジェクトに対して使うことができ、両方のDataFrameに存在する列名だけを抽出してくれます。まずは、サンプル用に2つのDataFrameを作成してみましょう。
# dataframe1 の作成
dataFrame1 = pd.DataFrame({
"Car": ['Bentley', 'Lexus', 'Tesla', 'Mustang', 'Mercedes', 'Jaguar'],
"Cubic_Capacity": [2000, 1800, 1500, 2500, 2200, 3000],
"Reg_Price": [7000, 1500, 5000, 8000, 9000, 6000]
})
# dataframe2 の作成
dataFrame2 = pd.DataFrame({
"Car": ['BMW', 'Lexus', 'Tesla', 'Mustang', 'Mercedes', 'Jaguar'],
"Units_Sold": [100, 110, 150, 80, 200, 90]
})
共通する列を取得するには、次のように記述します。
dataFrame2.columns.intersection(dataFrame1.columns)
実行例
以下が完全なコードです。
import pandas as pd
# dataframe1 の作成
dataFrame1 = pd.DataFrame({
"Car": ['Bentley', 'Lexus', 'Tesla', 'Mustang', 'Mercedes', 'Jaguar'],
"Cubic_Capacity": [2000, 1800, 1500, 2500, 2200, 3000],
"Reg_Price": [7000, 1500, 5000, 8000, 9000, 6000]
})
print("Dataframe1...\n", dataFrame1)
# dataframe2 の作成
dataFrame2 = pd.DataFrame({
"Car": ['BMW', 'Lexus', 'Tesla', 'Mustang', 'Mercedes', 'Jaguar'],
"Units_Sold": [100, 110, 150, 80, 200, 90]
})
print("Dataframe2...\n", dataFrame2)
# intersection() を使って共通列を取得
res = dataFrame2.columns.intersection(dataFrame1.columns)
print("\nCommon columns...\n", res)
出力結果
上記のコードを実行すると、次のような出力が得られます。
Dataframe1...
Car Cubic_Capacity Reg_Price
0 Bentley 2000 7000
1 Lexus 1800 1500
2 Tesla 1500 5000
3 Mustang 2500 8000
4 Mercedes 2200 9000
5 Jaguar 3000 6000
Dataframe2...
Car Units_Sold
0 BMW 100
1 Lexus 110
2 Tesla 150
3 Mustang 80
4 Mercedes 200
5 Jaguar 90
Common columns...
Index(['Car'], dtype='object')
この例では、dataFrame1とdataFrame2のどちらにも「Car」列が含まれているため、intersection()の結果として「Car」だけが返されます。Cubic_CapacityやReg_Price、Units_Soldなど片方にしか存在しない列は除外されます。複数のDataFrameを結合・比較する前に共通列を確認したい場合などに、この方法が便利です。
-
Pythonで2つの文字列の共通部分を求める方法
はじめに Pythonでは、2つの文字列に共通して含まれる文字(共通部分・積集合)を抽出したい場面があります。本記事では、ループ処理を使った基本的な方法と、set(集合)を活用した効率的な方法の2つのアプローチを、実際のコード例とともにわかりやすく解説します。 方法1:ループ処理を使う方法 まずは、最も基本的なループ処理による方法です。以下の手順で問題を解決できます。 2つの文字列と、結果を格納するための空の文字列を用意します。 1つ目の文字列を先頭から順に走査し、現在の文字が2つ目の文字列にも含まれており、かつ結果の文字列にまだ存在しない場合にのみ追加します。 最終的な結果を出力します。
-
Pythonで2つの配列の共通部分(交差)を効率的に求める方法
問題概要2つの配列 A と B が与えられたとき、これらの配列に共通して含まれる要素(交差・共通部分)を求めます。例えば、A = [1, 4, 5, 3, 6]、B = [2, 3, 5, 7, 9] の場合、両方の配列に存在する要素は 3 と 5 だけなので、結果は [3, 5] となります。この種の問題では重複の扱いがポイントになります。ある要素が両方の配列に複数回現れる場合は、その出現回数のうち少ない方の回数だけ結果に含める必要があります。解法のアプローチこの問題は、ハッシュマップ(Pythonでは辞書型 dict)を使って要素の出現頻度を管理することで、効率的に解くことができます。手順