Wat te doen als panda's de datastring NA / ND niet herkennen als een ontbrekende waarde

2018 年 12 月 5 日

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