Wat te doen als panda's de datastring NA / ND niet herkennen als een ontbrekende waarde
Ontbrekende waarden in panda's
In experimentele datasets kunnen blanco's worden aangevuld met NA, NA (niet geanalyseerd) of ND, ND (niet gedetecteerd). In panda's worden NA en ND herkend als slechts een tekenreeks (object), dus het is niet mogelijk om ontbrekende waarden batchgewijs te verwerken met de functies dropna (), fillna () en isnull () zoals ze zijn. ..
De volgende worden herkend als ontbrekende waarden in panda's:
- NaN
- Geen
- np.nan
- wiskunde.nan
De strings NA en ND moeten worden geconverteerd naar een van de bovenstaande.
Verwerking voor NA en ND
Maak voorbeeldgegevens, waaronder NA, ND en NaN.
In [1]: import numpy als np importeer panda's 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
Neene en np.nan worden herkend en geteld als ontbrekende waarden, maar ND en NA zijn False.
isnull (): Retourneert True als de waarde ontbreekt
isnull.sum (): Verzamel ontbrekende waarden
In [2]: df.isnull () Out [2]: ABC 0 False False False 1 False False False 2 False False True 3 False False True In [3]: df.isnull (). Sum () Out [3] : A 0 B 0 C 2 dtype: int64
Vervang string ND door de functie replace
In [4]: df = df.replace ('ND', np.nan) Uit [4]: A B C 0 1 4 7 1 NaN NA NaN 2 2 5 NaN 3 3 5 NaN
isnull () en fillna () kunnen nu worden toegepast.
In [5]: df.isnull () Out [5]: ABC 0 False False False 1 True False True 2 False False True 3 False False True In [6]: df.isnull (). Sum () Out [6] : A 2 B 0 C 2 dtype: int64 In [7]: df.fillna (10) Uit [7]: ABC 0 1 4 7 1 10 NA 10 2 2 5 10 3 3 5 10
discussie
Lijst met opmerkingen
Er zijn nog geen reacties