Einführung
In diesem Lab werden wir den nullable Boolean-Datentyp erkunden, der von der Pandas-Bibliothek in Python zur Verfügung gestellt wird. Wir werden lernen, wie diese Funktion bei der Indizierung und logischen Operationen verwendet wird und wie sie sich von traditionellen booleschen Operationen aufgrund des Vorhandenseins von 'NA'-Werten unterscheidet.
Tipps für die VM
Nachdem der VM-Start abgeschlossen ist, klicken Sie in der oberen linken Ecke, um zur Registerkarte Notebook zu wechseln und Jupyter Notebook für die Übung zu öffnen.
Manchmal müssen Sie einige Sekunden warten, bis Jupyter Notebook vollständig geladen ist. Die Validierung von Operationen kann aufgrund von Einschränkungen in Jupyter Notebook nicht automatisiert werden.
Wenn Sie bei der Lernphase Probleme haben, können Sie Labby gerne fragen. Geben Sie nach der Sitzung Feedback, und wir werden das Problem für Sie prompt beheben.
Importieren der erforderlichen Bibliotheken
Zunächst müssen wir die erforderlichen Bibliotheken importieren, um die Operationen durchzuführen.
## Importieren der pandas- und numpy-Bibliotheken
import pandas as pd
import numpy as np
Indizierung mit NA-Werten
Pandas ermöglicht die Indizierung mit NA-Werten in einem booleschen Array, die als False behandelt werden.
## Erstellen einer pandas-Serie
s = pd.Series([1, 2, 3])
## Erstellen eines booleschen Arrays mit NA-Werten
mask = pd.array([True, False, pd.NA], dtype="boolean")
## Indizieren der Serie mit dem booleschen Array
s[mask] ## NA-Werte werden als False behandelt
Wenn Sie die NA-Werte beibehalten möchten, können Sie sie manuell mit fillna(True) auffüllen.
## Auffüllen von NA-Werten mit True und Indizieren der Serie
s[mask.fillna(True)]
Kleene-Logische Operationen
Pandas implementiert die Kleene-Logik (Drei-Wert-Logik) für logische Operationen wie & (und), | (oder) und ^ (exklusives Oder). Dies unterscheidet sich von der Verhalten von np.nan in logischen Operationen.
## Demonstration des Unterschieds in den 'oder'-Operationen zwischen np.nan und NA
pd.Series([True, False, np.nan], dtype="object") | True ## np.nan verhält sich anders
pd.Series([True, False, pd.NA], dtype="boolean") | True ## NA folgt der Kleene-Logik
## Demonstration des Unterschieds in den 'und'-Operationen zwischen np.nan und NA
pd.Series([True, False, np.nan], dtype="object") & True ## np.nan verhält sich anders
pd.Series([True, False, pd.NA], dtype="boolean") & True ## NA folgt der Kleene-Logik
Zusammenfassung
In diesem Lab haben wir uns mit dem nullable Boolean-Datentyp in Pandas und dessen Implementierung der Kleene-Logik zur Behandlung von NA-Werten in logischen Operationen beschäftigt. Diese Funktion bietet eine intuitivere Möglichkeit, fehlende Daten in booleschen Operationen zu behandeln und unterscheidet sich von der Verhalten von np.nan in diesen Operationen.