ホームページ >バックエンド開発 >Python チュートリアル >あるデータフレームには存在するが、別のデータフレームには存在しない行を検索する方法 (df1 と df2 の比較)?

あるデータフレームには存在するが、別のデータフレームには存在しない行を検索する方法 (df1 と df2 の比較)?

Susan Sarandon
Susan Sarandonオリジナル
2024-10-19 21:07:03668ブラウズ

How to Find Rows Present in One Dataframe but Not in Another (Comparing df1 and df2)?

データフレームの比較: 一方には存在するが他方には存在しない行の検索

データフレームを比較して相違点を特定することは、データ品質の保証とマージにとって重要です操作。この場合、特定の構造を持つ 2 つのデータフレーム (df1 と df2) があり、df2 には存在するが df1 には存在しない行を判別する必要があります。

最初に df1 != df2 を使用してデータフレームを比較しようとした結果、エラーです。このアプローチは、同一の行と列を持つデータフレームに対してのみ機能します。対称的な差異を見つけるには、別のアプローチが必要です。

1 つの方法では、データフレームを連結します:

df = pd.concat([df1, df2])
df = df.reset_index(drop=True)

次に、連結されたデータフレームをすべての列でグループ化します:

df_gpby = df.groupby(list(df.columns))

次に、行が 1 つだけ存在するインデックス値を取得して、一意のレコードを特定します。

idx = [x[0] for x in df_gpby.groups.values() if len(x) == 1]

これらのインデックスを使用して、データフレームをフィルタリングして、目的の結果を取得できます。

df.reindex(idx)

このアプローチでは、Date インデックスと Fruit 列の比較に基づいて、df2 には存在するが df1 には存在しない行が提供されます。

以上があるデータフレームには存在するが、別のデータフレームには存在しない行を検索する方法 (df1 と df2 の比較)?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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