Pandas : comment vérifier si deux DataFrames sont égaux



Vous pouvez utiliser la syntaxe de base suivante pour vérifier si deux DataFrames pandas sont égaux :

df1.equals(df2)

Cela renverra une valeur de True ou False .

Si deux DataFrames ne sont pas égaux, vous pouvez utiliser la syntaxe suivante pour rechercher les lignes du deuxième DataFrame qui n’existent pas dans le premier DataFrame :

#perform outer join on two DataFrames
all_df = df1.merge(df2, indicator=True, how='outer')

#find which rows only exist in second DataFrame
only_df2 = all_df[all_df['_merge'] == 'right_only']
only_df2 = only_df2.drop('_merge', axis=1)

L’exemple suivant montre comment utiliser cette syntaxe dans la pratique.

Exemple : Vérifiez si deux DataFrames pandas sont égaux

Supposons que nous ayons les deux DataFrames pandas suivants :

import pandas as pd

#create first DataFrame
df1 = pd.DataFrame({'team' : ['A', 'B', 'C', 'D', 'E'], 
                    'points' : [12, 15, 22, 29, 24]}) 

print(df1)

  team  points
0    A      12
1    B      15
2    C      22
3    D      29
4    E      24

#create second DataFrame
df2 = pd.DataFrame({'team' : ['A', 'D', 'F', 'G', 'H'],
                    'points' : [12, 29, 15, 19, 10]})

print(df2)

  team  points
0    A      12
1    D      29
2    F      15
3    G      19
4    H      10

Nous pouvons utiliser la syntaxe suivante pour vérifier si les deux DataFrames sont égaux :

#check if two DataFrames are equal
df1.equals(df2)

False

La sortie renvoie False , ce qui signifie que les deux DataFrames ne sont pas égaux.

Nous pouvons ensuite utiliser la syntaxe suivante pour rechercher quelles lignes existent dans le deuxième DataFrame mais pas dans le premier :

#perform outer join on two DataFrames
all_df = df1.merge(df2, indicator=True, how='outer')

#find which rows only exist in second DataFrame
only_df2 = all_df[all_df['_merge'] == 'right_only']
only_df2 = only_df2.drop('_merge', axis=1)

#view results
print(only_df2)

  team  points
5    F      15
6    G      19
7    H      10

À partir du résultat, nous pouvons voir qu’il y a trois lignes dans le deuxième DataFrame qui n’existent pas dans le premier DataFrame.

Ressources additionnelles

Les didacticiels suivants expliquent comment effectuer d’autres tâches courantes dans les pandas :

Pandas : ajouter une colonne d’un DataFrame à un autre
Pandas : obtenez des lignes qui ne se trouvent pas dans un autre DataFrame
Pandas : comment vérifier si plusieurs colonnes sont égales

Ajouter un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *