Was tun, wenn Pandas die Datenzeichenfolge NA / ND nicht als fehlenden Wert erkennt?
Fehlende Werte bei Pandas
In experimentellen Datensätzen können Leerzeichen mit NA, NA (nicht analysiert) oder ND, ND (nicht nachgewiesen) ergänzt werden. In Pandas werden NA und ND nur als Zeichenfolge (Objekt) erkannt, sodass es nicht möglich ist, fehlende Werte mit den Funktionen dropna (), fillna () und isnull () unverändert zu verarbeiten.
Folgendes wird in Pandas als fehlender Wert erkannt:
- NaN
- Andere
- np.nan
- mathe.nan
Die Zeichenfolgen NA und ND müssen in eine der oben genannten konvertiert werden.
Verarbeitung für NA und ND
Erstellen Sie Beispieldaten, einschließlich NA, ND und NaN.
In [1]: importiere numpy als np importiere Pandas als pd df = pd.DataFrame ({'A': [1, 'ND', 2, 3], 'B': [4, 'NA', 5, 6 ], 'C': [7, 'ND', None, np.nan]}) Out [1] ABC 0 1 4 7 1 ND NA ND 2 2 5 NaN 3 3 5 NaN
Neinne und np.nan werden erkannt und als fehlende Werte gezählt, aber ND und NA sind falsch.
isnull (): Gibt True zurück, wenn der Wert fehlt
isnull.sum (): Aggregieren Sie fehlende Werte
In [2]: df.isnull () Out [2]: ABC 0 Falsch Falsch Falsch 1 Falsch Falsch Falsch 2 Falsch Falsch Richtig 3 Falsch Falsch Richtig In [3]: df.isnull (). Sum () Out [3] : A 0 B 0 C 2 dtype: int64
Ersetzen Sie die Zeichenfolge ND durch die Ersetzungsfunktion
In [4]: df = df.replace ('ND', np.nan) Out [4]: A B C 0 1 4 7 1 NaN NA NaN 2 2 5 NaN 3 3 5 NaN
isnull () und fillna () können jetzt angewendet werden.
In [5]: df.isnull () Out [5]: ABC 0 Falsch Falsch Falsch 1 Richtig Falsch Richtig 2 Falsch Falsch Richtig 3 Falsch Falsch Richtig In [6]: df.isnull (). Sum () Out [6] : A 2 B 0 C 2 dtyp: int64 In [7]: df.fillna (10) Out [7]: ABC 0 1 4 7 1 10 NA 10 2 2 5 10 3 3 5 10
Diskussion
Liste der Kommentare
Es gibt noch keine Kommentare