pandasで2つのTBLの差分チェック
AとBの2つの差分を調べる
#uniqueかどうかを重複排除して調べる
def is_uni(df):
return len(df) == len(len.drop_duplicates())
データ作成
#ここは適当にしてます
番号と年月をカラムにもつ
df_a = df_a[df_a["年月"] > "202306"]
df_b = df_b[df_b["年月"] > "202307"]
# aの中にbがあるか調査。重複しているものをdf_exに
df_ex = df_a[df_a["番号"].isin(df_b["番号"])]
ソート
# aとexを比較する前にソート
df_a = df_a.sort_values(["番号","年月"]).reset_index(drop=True)
df_ex = df_ex.sort_values(["番号","年月"]).reset_index(drop=True)
差分チェック
df_a.equals(df_ex)
→Trueなら完全一致
→Falseなら不一致
#不一致ならどこが差分なのかチェックする
df_compare = df_a.compare(df_ex)
df_compareを表示で重複している差分をチェックできる
カラムに絞る場合は
df_compare = df_a["番号"].compare(df_ex["番号"])
# ちなみに、index番号で一行表示したい場合は
df[100:101]
などのスライス表記で表示可能