J'ai deux dataframes comme ci-dessous: je veux comparer deux lignes de données à la ligne et si supposons que la ligne1 de DF1 ne soit pas égale à la ligne1 de DF2 Imprimer une erreur
df1
A B
0 1 3
1 2 4
2 3 5
3 4 6
4 5 7
df2
A B
0 1 3
1 2 4
2 3 5
3 4 5
4 5 7
3 Réponses :
Avez-vous jetez un coup d'oeil au Documentation ?
df1[~df1.eq(df2)].dropna(how='all')
A B
3 NaN 6.0
Je veux imprimer une erreur pour chaque ligne où cette ligne a une valeur inégale. Donc, dans ce cas, nous devons parcourir chaque rangée
Non, vous ne faites pas itérale à travers un Pandas code> DataFrame Row sage, qui ne l'utilise pas correctement
J'aime la réponse de @ Aws_apprentice. Mais, étant donné que vous avez demandé à "imprimer une erreur", considérez également pandas.testing.assert_frame_equal code> (DOCS) , qui soulèvera une exception assertionError code> si Les dataframes ne sont pas identiques et vous donnent une sortie de diagnostic. P>
Vous devriez vérifier Andy Hayden's Répondre ici: Différence de sortie de deux pandas DataFrames côte à côte - Sélection de la différence p>
Qu'est-ce que vous essayez de faire (Erreur d'impression si une ligne est différente) peut ne pas être la meilleure option ici. quel afraframe avez-vous l'intention d'utiliser comme base de comparaison et d'ajouter la colonne d'erreur? Supposons que vous choisissiez DF1 et comparez-la à DF2, que si DF2 a des lignes supplémentaires qui ne sont pas présentes dans DF1; Dans ce cas, il n'y a pas de ligne dans DF1 pour ajouter le message d'erreur. P>
Vous pouvez comparer des cadres de données à l'aide de (df1 == DF2) .Toutez-vous (1), quelle est la sortie attendue?