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

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

Patricia Arquette
リリース: 2024-10-19 21:14:02
オリジナル
466 人が閲覧しました

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 サイトの他の関連記事を参照してください。

ソース:php
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート