2017-02-22 3 views
0

Also versuche ich Zeilen zu finden, in denen Daten auf einen Unfall hinweisen - in diesem Fall identifiziert der Datensatz ein Alarmsignal, das dann zu einem Fehlersignal im Datensatz zwischen 1 und 14 Tage später.df.loc - Mehrere Zeilen basierend auf einer Bedingung bearbeiten

Ist es möglich, eine "Fehler" -Spalte zu erstellen, bei der nach dem Erkennen eines Alarmsignals die Spalte "Fehler" für die nächsten 14 Tage auf True gesetzt wird? df.loc versucht zu arbeiten, ändert aber nur eine Zeile für den entsprechenden Tag, während ich gerne eine Lösung hätte, die den entsprechenden Tag und die restlichen 13 Tage bearbeiten kann! Auf diese Weise kann ich dann das Datum des Fehlersignals anhand des Datumsbereichs der Alarmsignale überprüfen, um festzustellen, ob der Fehler tatsächlich aufgetreten ist.

z. Pseudodaten

time   vibration_value fault? 
2007-06-01  50     False 
2007-06-02  47     False 
2007-06-03  29     False 
2007-06-04  52     False 
2007-06-05  455    True 
2007-06-06  672    True 
2007-06-07  513    True 
2007-06-08  532    True 
2007-06-09  510    True 
2007-06-10  498    True 
2007-06-11  12     False 
2007-06-12  25     False 
2007-06-13  19     False 
2007-06-14  46     False 

ich dies für das erste Fehler Ergebnis mit dem folgenden Code zu erreichen, aber ich bin nicht sicher, wie diese zu erhalten, die folgenden Zeilen zu bearbeiten.

df.loc[df['vibration_value'] >= 250, 'Fault'] = True 
+0

Apologies, sortiert jetzt – PenguinProgrammer

+0

Die gewünschte Ausgabe ist, dass die ‚Fault‘ Spalte für die zusätzlichen paar Tage treu bleibt, so dass ich gegen den Tagen Verweis überqueren kann, wenn die Daten nicht ganz korrekt – PenguinProgrammer

+0

ausrichten Was passiert, wenn 'df ['vibration_value']> = 520' und brauche die letzten 3 Tage? – jezrael

Antwort

1

Nach meinem Verständnis Ihrer Frage sollte dies funktionieren.

df.ix[df['vibration_value'] >= 250, 'Fault'] = True 
Verwandte Themen