Maison >développement back-end >Tutoriel Python >Comment comparer et afficher efficacement les différences de trames de données à l'aide de Python
Comparer et afficher efficacement les différences de trames de données
Introduction
Identifier et comprendre les différences entre deux Les dataframes sont une tâche courante dans l’analyse des données. Qu'il s'agisse de comparer des données historiques aux tendances actuelles ou de suivre les changements dans une base de données, la capacité de mettre en évidence ces changements avec précision est cruciale.
Énoncé du problème
Supposons que nous ayons deux trames de données. contenant des informations sur la liste des étudiants de deux mois différents : « StudentRoster Jan-1 » et « StudentRoster Jan-2 ». Notre objectif est de créer un tableau HTML qui affiche clairement les changements entre ces deux cadres de données, affichant à la fois les nouvelles et les anciennes valeurs pour chaque ligne.
Solution
Identifier les lignes modifiées
La première étape consiste à déterminer quelles lignes ont réellement changé. Nous pouvons utiliser la fonction any() pour vérifier chaque ligne pour déceler d'éventuelles différences :
<code class="python">import pandas as pd import numpy as np ne = (df1 != df2).any(1)</code>
Cela renverra une série booléenne où True indique une ligne modifiée.
Extraction des valeurs modifiées
Ensuite, nous devons extraire les valeurs réellement modifiées. Nous utilisons la méthode .stack() pour transformer le dataframe en une seule colonne, puis filtrons cette colonne pour les valeurs modifiées :
<code class="python">ne_stacked = (df1 != df2).stack() changed = ne_stacked[ne_stacked] changed.index.names = ['id', 'col']</code>
Cela nous donnera les noms d'index et de colonne des valeurs modifiées.
Cela nous donnera les noms d'index et de colonne des valeurs modifiées.
Extraction des valeurs précédentes et nouvelles
<code class="python">difference_locations = np.where(df1 != df2) changed_from = df1.values[difference_locations] changed_to = df2.values[difference_locations]</code>
En utilisant l'index des valeurs modifiées, nous pouvons extraire les valeurs précédentes et nouvelles pour chaque entrée modifiée :
Création du tableau HTML
<code class="python">pd.DataFrame({'from': changed_from, 'to': changed_to}, index=changed.index)</code>
Enfin, nous pouvons créer le tableau HTML en combinant les valeurs extraites :
Ce dataframe contient deux colonnes : "from" et « à », qui affichent les valeurs originales et nouvelles pour chaque entrée modifiée. L'index du dataframe identifie la ligne et la colonne où le changement s'est produit.En affichant côte à côte les valeurs modifiées et leurs valeurs précédentes et nouvelles, ce tableau HTML fournit un aperçu clair et complet des modifications. entre les deux dataframes.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!