Maison >développement back-end >Tutoriel Python >Comment comparer les DataFrames Pandas et visualiser les différences ?

Comment comparer les DataFrames Pandas et visualiser les différences ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-10-22 20:45:19993parcourir

How to Compare Pandas DataFrames and Visualize Differences?

Comparer les DataFrames et visualiser les différences avec une comparaison côte à côte

Étant donné deux dataframes Pandas, la tâche consiste à identifier et à présenter les changements entre eux dans un format convivial. L'objectif est de générer un tableau HTML qui met visuellement en évidence les lignes qui ont changé, affichant à la fois les valeurs d'origine et mises à jour.

Identifier les modifications de ligne

Pour y parvenir, il est nécessaire de déterminer les lignes qui ont changé. Cela peut être accompli en utilisant l'opération ne (pas égal), qui renvoie un masque booléen pour tous les éléments où les valeurs correspondantes dans deux trames de données diffèrent.

<code class="python">ne = (df1 != df2).any(1)</code>

Localisation des entrées modifiées

Une fois les lignes modifiées identifiées, les entrées spécifiques qui ont été modifiées peuvent être localisées à l'aide de la fonction stack(). En filtrant le résultat empilé en fonction du masque booléen, il devient possible d'extraire les entrées qui ont changé.

<code class="python">changed = (df1 != df2).stack()[ne_stacked]
changed.index.names = ['id', 'col']</code>

Extraction des valeurs modifiées

Ensuite, l'original et les valeurs mises à jour peuvent être extraites à l’aide de la fonction Where. Cela permet la création d'un DataFrame qui résume les modifications, avec les colonnes « de » et « à » représentant respectivement les valeurs d'origine et modifiées.

<code class="python">difference_locations = np.where(df1 != df2)
changed_from = df1.values[difference_locations]
changed_to = df2.values[difference_locations]</code>

Génération d'un tableau HTML

Enfin, les modifications extraites peuvent être organisées dans un tableau HTML pour visualiser les différences entre les deux dataframes. Ce tableau peut être rendu avec n'importe quel moteur de rendu HTML, tel que la méthode to_html de Pandas, pour fournir une comparaison côte à côte conviviale.

<code class="python">pd.DataFrame({'from': changed_from, 'to': changed_to}, index=changed.index).to_html()</code>

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!

Déclaration:
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