パンダ: 2 つの dataframe が等しいかどうかを確認する方法


次の基本構文を使用して、2 つのパンダの DataFrame が等しいかどうかを確認できます。

 df1. equals (df2)

これにより、 TrueまたはFalseの値が返されます。

2 つの DataFrame が等しくない場合は、次の構文を使用して、最初の DataFrame に存在しない 2 番目の DataFrame の行を検索できます。

 #perform outer join on two DataFrames
all_df = df1. merge (df2, indicator= True , how=' outer ')

#find which rows only exist in second DataFrame
only_df2 = all_df[all_df[' _merge '] == ' right_only ']
only_df2 = only_df2. drop (' _merge ', axis= 1 )

次の例は、この構文を実際に使用する方法を示しています。

例: 2 つのパンダの DataFrame が等しいかどうかを確認する

次の 2 つのパンダ DataFrame があると仮定します。

 import pandas as pd

#create first DataFrame
df1 = pd. DataFrame ({' team ': ['A', 'B', 'C', 'D', 'E'], 
                    ' points ': [12, 15, 22, 29, 24]}) 

print (df1)

  team points
0 to 12
1 B 15
2 C 22
3 D 29
4 E 24

#create second DataFrame
df2 = pd. DataFrame ({' team ': ['A', 'D', 'F', 'G', 'H'],
                    ' points ': [12, 29, 15, 19, 10]})

print (df2)

  team points
0 to 12
1 D 29
2 F 15
3 G 19
4:10 a.m.

次の構文を使用して、2 つの DataFrame が等しいかどうかを確認できます。

 #check if two DataFrames are equal
df1. equals (df2)

False

出力はFalseを返します。これは、2 つの DataFrame が等しくないことを意味します。

次に、次の構文を使用して、2 番目の DataFrame には存在するが最初の DataFrame には存在しない行を見つけることができます。

 #perform outer join on two DataFrames
all_df = df1. merge (df2, indicator= True , how=' outer ')

#find which rows only exist in second DataFrame
only_df2 = all_df[all_df[' _merge '] == ' right_only ']
only_df2 = only_df2. drop (' _merge ', axis= 1 )

#view results
print (only_df2)

  team points
5 F 15
6 G 19
7:10 a.m.

結果から、2 番目の DataFrame には、最初の DataFrame に存在しない行が 3 つあることがわかります。

追加リソース

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

パンダ: あるデータフレームから別のデータフレームに列を追加します。
パンダ: 別の DataFrame にない行を取得する
パンダ: 複数の列が等しいかどうかを確認する方法

コメントを追加する

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