Maison >développement back-end >Tutoriel Python >Comment comparer les DataFrames pour les différences dans les lignes ?
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>
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
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!