dataframeで差集合もとめられる?

はい、PandasのDataFrameを使用しても、セットの差を見つけることができます。

Pandas DataFrameにおいて、df1df2という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_onlydf1にのみ存在する行)である行を抽出し、drop()関数を使用して_merge列を削除しています。

このコードを実行すると、df1にのみ存在する行が含まれたDataFrameが得られます。

未分類

Posted by ぼっち