dataframeで差集合もとめられる?
はい、PandasのDataFrameを使用しても、セットの差を見つけることができます。
Pandas DataFrameにおいて、df1とdf2という2つのDataFrameがあるとします。それぞれのDataFrameには、共通の列があると仮定します。
差を求める方法はいくつかありますが、一般的な方法はmerge()関数を使用して差を見つけることです。以下に、例を示します。
python
import pandas as pd
# 2つのDataFrameを作成する
df1 = pd.DataFrame({'col1': ['one', 'two', 'three'],
'col2': [1, 2, 3]})
df2 = pd.DataFrame({'col1': ['two', 'three', 'four'],
'col2': [2, 3, 4]})
# df1からdf2を差し引く
difference_df = pd.merge(df1, df2, how='outer', indicator=True).query('_merge == "left_only"').drop('_merge', axis=1)
print(difference_df)
このコードでは、merge()関数を使用して、df1からdf2を外部結合しています(how='outer'を指定)。そして、_merge列にマージの結果が示されます。その後、query()関数を使用して、_merge列がleft_only(df1にのみ存在する行)である行を抽出し、drop()関数を使用して_merge列を削除しています。
このコードを実行すると、df1にのみ存在する行が含まれたDataFrameが得られます。

ディスカッション
コメント一覧
まだ、コメントがありません