Comment identifier les lignes présentes dans df2 mais absentes dans df1 ?

Barbara Streisand
Libérer: 2024-10-19 21:08:29
original
374 Les gens l'ont consulté

How to Identify Rows Present in df2 But Absent in df1?

Différences entre deux DataFrames

Comparer les dataframes pour identifier les différences est essentiel pour l'analyse des données. Dans ce problème, nous recevons deux dataframes, df1 et df2, et devons trouver les lignes présentes dans df2 mais absentes dans df1.

Comparaison avec la matrice booléenne

Comparaison directe à l'aide d'opérateurs comme != peut conduire à des erreurs si les trames de données ont des structures différentes. Une meilleure approche consiste à concaténer les trames de données, à réinitialiser leurs indices, puis à les comparer. L'utilisation de df1 == df2 entraînera une matrice booléenne où True indique les lignes présentes dans les deux trames de données et False indique les différences.

Regroupement par valeurs uniques

Ensuite, nous pouvons effectuer une opération de regroupement sur la trame de données concaténée pour identifier les lignes uniques. L'objectif est de trouver des lignes qui n'apparaissent qu'une seule fois dans la trame de données. Nous pouvons y parvenir en vérifiant la longueur des groupes ; les lignes d'une longueur de 1 représentent des enregistrements uniques.

Filtrage du Dataframe

Enfin, nous pouvons utiliser les indices de lignes uniques identifiés pour filtrer le dataframe. Cela nous fournira les lignes de df2 qui ne sont pas présentes dans df1.

Exemple

Par exemple, en considérant les exemples de dataframes fournis :

<code class="python">import pandas as pd

df1 = ...
df2 = ...

# Concatenate dataframes
df = pd.concat([df1, df2])
df = df.reset_index(drop=True)

# Group by unique values
df_gpby = df.groupby(list(df.columns))

# Get unique row indices
idx = [x[0] for x in df_gpby.groups.values() if len(x) == 1]

# Filter dataframe
result = df.reindex(idx)</code>
Copier après la connexion

Le dataframe résultat contiendra les lignes de df2 qui ne sont pas présentes 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
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!