O que fazer quando o pandas não reconhece a string de dados NA / ND como um valor ausente
Valores ausentes em pandas
Em conjuntos de dados experimentais, os espaços em branco podem ser complementados com NA, NA (não analisado) ou ND, ND (não detectado). No pandas, NA e ND são reconhecidos apenas como uma sequência de caracteres (objeto), portanto, não é possível processar em lote os valores ausentes usando as funções dropna (), fillna () e isnull () como estão. ..
Os seguintes são reconhecidos como valores ausentes em pandas:
- NaN
- nenhum
- np.nan
- matemática.nan
As strings NA e ND precisam ser convertidas em uma das anteriores.
Processamento para NA e ND
Crie dados de amostra incluindo NA, ND e NaN.
Em [1]: import numpy as np import pandas as pd df = pd.DataFrame ({'A': [1, 'ND', 2, 3], 'B': [4, 'NA', 5, 6 ], 'C': [7, 'ND', Nenhum, np.nan]}) Out [1] ABC 0 1 4 7 1 ND NA ND 2 2 5 NaN 3 3 5 NaN
Nãone e np.nan são reconhecidos e contados como valores ausentes, mas ND e NA são falsos.
isnull (): Retorna True se o valor estiver ausente
isnull.sum (): Agregar valores ausentes
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 dtipo: int64
Substitua a string ND com a função de substituição
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 () e fillna () agora podem ser aplicados.
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 dtipo: 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
discussão
Lista de comentários
Ainda não há comentários