2017-09-27 5 views
2

J'ai un dataframe similaire ci-dessous,boucle à travers la colonne et l'arrêt à une certaine condition (python)

Date   A B 
2017-01-01  1 1 
2017-01-02  2 2 
2017-01-03  1 2 

Pour chaque colonne, je veux tester la condition A == B pour chaque nom dans le groupby déclaration. Si cette condition ne s'applique pas, je veux imprimer "Condition se termine le 2017-01-03." Je ne suis pas sûr de savoir comment parcourir chaque rangée dans cette base de données. J'envisager quelque chose comme ce code, même si je sais que je ne suis pas itterating par la chose correcte:

for i in df.Date: 
    if df.A == df.B: 
     continue 
    if df.A != df.B: 
     print ("Condition ends at", i) 
+0

Pas vraiment la réponse, mais vous pouvez passer la vérification de l'égalité des A et B, et ne garder que le contrôle "pas égal". –

Répondre

1

S'il vous plaît jeter un oeil à this.

Vous seriez Itère chaque ligne, puis accéder à la colonne appropriée comme une clé, de cette façon vous pouvez comparer la colonne à l'autre dans chaque rangée

0

Vous pouvez le faire comme ceci:

print 'Condition ends at', (df.A.values != df.B.values).argmax() 
0

Vous pouvez utiliser la syntaxe belle pythonique:

print next([d for d in dates if d.A != d.B], None) 

le Aucun serait la valeur par défaut si aucun se trouve