Comment trouver les lignes présentes dans une trame de données mais pas dans une autre (en comparant df1 et df2) ?

Susan Sarandon
Libérer: 2024-10-19 21:07:03
original
653 Les gens l'ont consulté

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

Comparer des dataframes : rechercher des lignes présentes dans l'une mais pas dans l'autre

Comparer des dataframes pour identifier les différences est crucial pour l'assurance qualité et la fusion des données. opérations. Dans ce cas, nous avons deux dataframes (df1 et df2) avec une structure spécifique et devons déterminer les lignes présentes dans df2 mais pas dans df1.

Au départ, les tentatives de comparaison des dataframes en utilisant df1 != df2 aboutissaient à une erreur. Cette approche ne fonctionne que pour les dataframes avec des lignes et des colonnes identiques. Pour trouver des différences symétriques, nous avons besoin d'une approche différente.

Une méthode consiste à concaténer les trames de données :

df = pd.concat([df1, df2])
df = df.reset_index(drop=True)
Copier après la connexion

Ensuite, regrouper la trame de données concaténée par toutes les colonnes :

df_gpby = df.groupby(list(df.columns))
Copier après la connexion

Ensuite, nous identifions les enregistrements uniques en obtenant les valeurs d'index là où une seule ligne existe :

idx = [x[0] for x in df_gpby.groups.values() if len(x) == 1]
Copier après la connexion

En utilisant ces indices, nous pouvons filtrer la trame de données pour obtenir le résultat souhaité :

df.reindex(idx)
Copier après la connexion

Cette approche fournit les lignes présentes dans df2 mais absentes dans df1 sur la base de la comparaison de l'index Date et de la colonne Fruit.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal