パンダ: 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 にない行を取得する
パンダ: 複数の列が等しいかどうかを確認する方法