Comparer des trames de données : rechercher des lignes présentes dans l'une mais pas dans l'autre
Comparer des trames de données pour identifier les différences est crucial pour l'assurance qualité et la fusion des données opérations. Dans ce cas, nous avons deux dataframes (df1 et df2) avec une structure spécifique et devons déterminer les lignes présentes dans df2 mais pas dans df1.
Initialement, les tentatives de comparaison des dataframes en utilisant df1 != df2 ont abouti à une erreur. Cette approche ne fonctionne que pour les dataframes avec des lignes et des colonnes identiques. Pour trouver des différences symétriques, nous avons besoin d'une approche différente.
Une méthode consiste à concaténer les trames de données :
df = pd.concat([df1, df2]) df = df.reset_index(drop=True)
Ensuite, regroupez le dataframe concaténé par toutes les colonnes :
df_gpby = df.groupby(list(df.columns))
Ensuite, nous identifions les enregistrements uniques en obtenant les valeurs d'index là où une seule ligne existe :
idx = [x[0] for x in df_gpby.groups.values() if len(x) == 1]
En utilisant ces indices, nous pouvons filtrer la trame de données pour obtenir le résultat souhaité :
df.reindex(idx)
Cette approche fournit les lignes présentes dans df2 mais absentes dans df1 sur la base de la comparaison de l'index Date et du Fruit colonne.
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3