Comment comparer les DataFrames pour les différences dans les lignes ?

Mary-Kate Olsen
Libérer: 2024-10-19 21:13:29
original
271 Les gens l'ont consulté

How to Compare DataFrames for Differences in Rows?

Comparaison de DataFrames pour les différences dans les lignes

Lors de la comparaison de deux dataframes avec des lignes et des colonnes identiques, l'opération de comparaison simple (df1 != df2) est suffisant. Cependant, si les trames de données ont des ensembles de lignes différents, une approche différente est nécessaire pour identifier les différences.

Concat, Group et Filter

Une méthode pour comparer les trames de données pour Les différences de lignes consistent à les concaténer, à les regrouper par colonnes et à filtrer les lignes uniques. Le code suivant illustre cela :

<code class="python">df = pd.concat([df1, df2])
df = df.reset_index(drop=True)
df_gpby = df.groupby(list(df.columns))
idx = [x[0] for x in df_gpby.groups.values() if len(x) == 1]
result = df.reindex(idx)</code>
Copier après la connexion

Le dataframe concaténé (df) est regroupé par toutes ses colonnes (df_gpby). La méthode 'groups.values()' renvoie un itérable de tuples, où chaque tuple représente les indices de lignes uniques. Le filtrage des tuples par longueur (len(x) == 1) identifie les lignes qui existent dans une seule trame de données. Enfin, la réindexation du dataframe avec les indices filtrés (idx) produit un dataframe contenant les différences de lignes.

Exemple de sortie

Utilisation des exemples de dataframes fournis :

>>> result
         Date   Fruit   Num   Color
9  2013-11-25  Orange   8.6  Orange
8  2013-11-25   Apple  22.1     Red
Copier après la connexion

Cette sortie affiche les lignes qui sont dans df2 mais pas dans df1.

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