predictive-maintenance

German Version

Beschreibung der Funtkionsweise wie “defect_present” gesetzt wird

Der Code erstellt die Spalte "defect_present" im DataFrame sensor_df, um anzuzeigen, ob für jede Zeile (d. h. für jeden Datensatz) ein Defekt vorliegt oder nicht. Hier ist eine detaillierte Erklärung:

sensor_df["defect_present"] = sensor_df.apply(
    lambda row: 1 if row.get("mileage") is not None and any(
        abs(row["mileage"] - defect.get("mileage", 0)) <= 50
        for _, defect in defects_df.iterrows() if defect["vehicleId"] == row["vehicleId"]
    ) else 0,
    axis=1
)

Funktionsweise:

  1. sensor_df.apply(..., axis=1):
    • apply wird auf sensor_df angewendet, um jede Zeile (Datensatz) einzeln zu verarbeiten (axis=1).
    • Für jede Zeile wird eine Funktion (Lambda-Funktion) aufgerufen, die prüft, ob ein Defekt vorliegt.
  2. Lambda-Funktion (lambda row: ...):
    • Diese Funktion legt fest, dass defect_present den Wert 1 erhält, wenn ein Defekt vorhanden ist, und 0, wenn keiner vorliegt.
  3. Bedingung row.get("mileage") is not None:
    • Diese Bedingung stellt sicher, dass mileage (Kilometerstand) für die aktuelle Zeile nicht None ist.
    • Wenn mileage None ist, wird defect_present automatisch 0.
  4. Prüfung auf Defekte mit any(...):
    • any(...) prüft, ob mindestens eine Übereinstimmung im DataFrame defects_df gefunden wird.
    • Innerhalb von any(...) wird eine Schleife (for _, defect in defects_df.iterrows()) durch alle Defekte in defects_df ausgeführt.
  5. Defekt-Abgleich:
    • Die Schleife überprüft:
      • ob der vehicleId des Defekts mit dem vehicleId der aktuellen Zeile in sensor_df übereinstimmt und
      • ob die Differenz zwischen dem Kilometerstand der aktuellen Zeile (row["mileage"]) und dem Kilometerstand des Defekts (defect.get("mileage", 0)) kleiner oder gleich 50 ist.
    • Ist dies der Fall, wird any(...) True und defect_present wird auf 1 gesetzt.
  6. Ergebnis:
    • Wenn die Bedingung erfüllt ist, weist die Lambda-Funktion defect_present den Wert 1 zu.
    • Andernfalls wird defect_present auf 0 gesetzt.

Zusammengefasst:

Dieser Code erstellt eine Spalte defect_present, die für jede Zeile angibt, ob ein Defekt im Kilometerstand-Bereich ±50 vorhanden ist.

Lizenz

Autor: Jörg Harzmann

Dieser Inhalt ist unter einer CC BY-NC Lizenz veröffentlicht. Jeglicher Quellcode ist urheberrechtlich geschützt!