パンダ: 2 つの異なる dataframe の列を比較する方法


次のメソッドを使用して、2 つの異なるパンダ データフレームの列を比較できます。

方法 1: 列間で一致する値を数える

 df1[' my_column ']. isin (df2[' my_column ']). value_counts ()

方法 2: 列間で一致する値を表示する

 p.d. merge (df1, df2, on=[' my_column '], how=' inner ')

次の例は、次の pandas DataFrame で各メソッドを使用する方法を示しています。

 import numpy as np
import pandas as pd

#create first DataFrame
df1 = pd. DataFrame ({' team ': ['Mavs', 'Rockets', 'Spurs', 'Heat', 'Nets'],
                    ' points ': [22, 30, 15, 17, 14]})

#view DataFrame
print (df1)

      team points
0 Mavs 22
1 Rockets 30
2 Spurs 15
3 Heat 17
4 Nets 14

#create second DataFrame
df2 = pd. DataFrame ({' team ': ['Mavs', 'Thunder', 'Spurs', 'Nets', 'Cavs'],
                    ' points ': [25, 40, 31, 32, 22]})

#view DataFrame
print (df2)

      team points
0 Mavs 25
1 Thunder 40
2 Spurs 31
3 Nets 32
4 Cavs 22

例 1: 列間で一致する値を数える

次のコードは、各 DataFrame のチーム列間で一致する値の数をカウントする方法を示しています。

 #count matching values in team columns
df1[' team ']. isin (df2[' team ']). value_counts ()

True 3
False 2
Name: team, dtype: int64

2 つの DataFrame には、共通の3 つのチーム名と2 つの異なるチーム名があることがわかります。

例 2: 列間で一致する値を表示する

次のコードは、各 DataFrame のチーム列間の実際の一致値を表示する方法を示しています。

 #display matching values between team columns
p.d. merge (df1, df2, on=[' team '], how=' inner ')

	team points_x points_y
0 Mavs 22 25
1 Spurs 15 31
2 Nets 14 32

結果から、両方の DataFrame のチーム列に共通して次の値があることがわかります。

  • マブス
  • スパーズ
  • ネット

関連: Pandas で内部結合を実行する方法 (例付き)

追加リソース

次のチュートリアルでは、パンダで他の一般的なタスクを実行する方法を説明します。

Pandas で列の名前を変更する方法
Pandas DataFrame に列を追加する方法
Pandas DataFrame で列の順序を変更する方法

コメントを追加する

メールアドレスが公開されることはありません。 が付いている欄は必須項目です