ホームページ  >  記事  >  バックエンド開発  >  2 つのデータフレームを比較し、特定の列に基づいて相違点を抽出する方法

2 つのデータフレームを比較し、特定の列に基づいて相違点を抽出する方法

Patricia Arquette
Patricia Arquetteオリジナル
2024-10-19 21:14:02344ブラウズ

How to Compare Two Dataframes and Extract Differences Based on Specific Columns?

2 つのデータフレームの比較と違いの特定

シナリオには、同一の構造と行インデックスを持つ 2 つのデータフレーム df1 と df2 があります。目標は、日付値とフルーツ値を比較することによって、df2 には存在するが df1 には存在しない行を判断することです。

直接比較

df1 != df2 を使用するアプローチは、同じラベルのデータフレームが必要なため、適切ではありません。 Date インデックスを削除しても問題は解決できません。

連結とグループ化

相違点を見つけるには、データフレームを単一のデータフレーム df:

<code class="python">import pandas as pd

df = pd.concat([df1, df2])
df = df.reset_index(drop=True)</code>
df をすべての列でグループ化し、一意のレコードを識別します。

<code class="python">df_gpby = df.groupby(list(df.columns))</code>

一意のレコードのフィルタリング

次に、一意のレコードのインデックスを取得します。これは、グループ サイズが 1 のグループです:

<code class="python">idx = [x[0] for x in df_gpby.groups.values() if len(x) == 1]</code>
最後に、これらのインデックスを使用して連結されたデータフレームをフィルタリングし、df2:

これにより、必要な差分を含むデータフレームが返されます:
<code class="python">df.reindex(idx)</code>

以上が2 つのデータフレームを比較し、特定の列に基づいて相違点を抽出する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。