Что делать, если pandas не распознает строку данных NA / ND как отсутствующее значение
Отсутствующие значения в пандах
В экспериментальных наборах данных пробелы могут быть дополнены NA, NA (не проанализировано) или ND, ND (не обнаружено). В пандах NA и ND распознаются как просто символьная строка (объект), поэтому невозможно обработать отсутствующие значения в пакетном режиме с помощью функций dropna (), fillna () и isnull () как есть ...
Следующие значения распознаются в пандах как отсутствующие значения:
- NaN
- Ничто
- нп. нан
- math.nan
Строки NA и ND необходимо преобразовать в одну из указанных выше.
Обработка для NA и ND
Создайте образцы данных, включая NA, ND и NaN.
В [1]: импортировать numpy как np import pandas as 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
Нетne и np.nan распознаются и считаются пропущенными значениями, но ND и NA являются ложными.
isnull (): возвращает True, если значение отсутствует
isnull.sum (): агрегировать отсутствующие значения
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 d тип: int64
Заменить строку ND функцией замены
В [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 () и fillna () теперь могут применяться.
In [5]: df.isnull () Out [5]: ABC 0 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) Out [7]: ABC 0 1 4 7 1 10 NA 10 2 2 5 10 3 3 5 10
обсуждение
Список комментариев
Пока нет комментариев