Ccmmutty logo
Commutty IT
2 min read

【Polarsはいいぞ】集計結果の差分比較のためのanti merge

https://cdn.magicode.io/media/notebox/58e6ab22-f619-4971-8ada-20ae27c08159.jpeg

差分比較がしたい!

left join , inner joinだのはpandas もPolarsも書き方簡単ですが、差分比較がPolarsだと簡単にできたので残しておきます。

pandasの場合

こちらの記事から引っ張ってきています
def anti_join(x, y, on):
  ans = pd.merge(left=x, right=y, how='left', indicator=True, on=on)
  ans = ans.loc[ans._merge == 'left_only', :].drop(columns='_merge')
  return ans

def anti_join_all_cols(x, y):
  assert set(x.columns.values) == set(y.columns.values)
  return anti_join(x, y, x.columns.tolist())

Polarsの場合

なんとこれだけ。
how=“anti”だけ。
df_anti_join = df_cars.join(df_repairs, on="id", how="anti")

感想

結合できなかったデータを取得する、差分を取得する場面ってあまり出くわさないかもしれませんが、もし使うことがあった時に参考になれば。

Discussion

コメントにはログインが必要です。