やりたいこと
pythonのライブラリであるpandasを使って、
2つのTBLの差分を比較して相違点を洗い出したい。
コード
## csv読み込み
a1 = pd.read_csv("test.csv")
a2 = pd.read_csv("test2.csv")
## a1とa2をマージさせる
a_merge = pd.merge(a1,a2,how="outer",on="カラム1",indicator=True)
## value_countsでそれぞれの数を数える
a_merge["_merge"].values_counts()
概要
ここでの肝はindicator
を使うこと。
使うことにより、_mergeカラム
ができるのが大事。
このindicatorはleftやouterなどの結合で、どれぐらい紐づいているかを判別するオプションみたいですね。
試しに2つをマージして、_merge
をみてみます。
both
,left_only
,right_only
3つの表示が出てきます。
これにより左にしかないもの、右にしかないものを見ることが可能になります!
最終的に、以下を実行すれば違うところが目に見えてわかるので便利かもしれにゃい。
a_merge[a_merge["_merge"] == "left_only"]
a_merge[a_merge["_merge"] == "right_only"]
## left_onlyはは左にしかないものを出してくれる。right_onlyは右
## このため、2つの相違点が洗い出すことができる。