Значение NA
Значение NA (Not Available) в библиотеке Pandas используется для обозначения пропущенных или отсутствующих данных. Это специальный объект, который входит в состав модуля pandas и является основным способом представления пропусков в данных. В отличие от NaN (Not a Number), который используется для числовых данных, NA является более универсальным и может применяться к данным любых типов, включая строки, даты и категориальные переменные.
Значение NA ведёт себя особым образом в арифметических операциях и сравнениях. При выполнении вычислений с участием NA результат чаще всего также будет NA, что позволяет явно отслеживать наличие пропусков в данных. Это отличает его от None в Python, который не всегда корректно обрабатывается в Pandas.
Синтаксис
import pandas as pd
# Создание значения NA
na_value = pd.NA
# Использование в Series
ser = pd.Series([1, pd.NA, 3])
# Использование в DataFrame
df = pd.DataFrame({
'a': [1, pd.NA, 3],
'b': ['x', pd.NA, 'z']
})
Пример
Давайте создадим серию с пропущенными значениями и проверим их наличие:
import pandas as pd
ser = pd.Series([1, pd.NA, 3, pd.NA, 5])
print(ser)
Результат выполнения кода:
0 1
1 <NA>
2 3
3 <NA>
4 5
dtype: object
Как видно из результата, пропущенные значения отображаются как <NA>.
Пример
Арифметические операции с NA возвращают NA:
import pandas as pd
ser = pd.Series([1, pd.NA, 3])
res = ser + 10
print(res)
Результат выполнения кода:
0 11
1 <NA>
2 13
dtype: object
Пример
Сравнение с NA также возвращает NA, что позволяет явно идентифицировать пропуски:
import pandas as pd
ser = pd.Series([1, pd.NA, 3])
res = ser == 1
print(res)
Результат выполнения кода:
0 True
1 <NA>
2 False
dtype: object
Пример
Значение NA можно использовать в сочетании с методом fillna для замены пропусков:
import pandas as pd
ser = pd.Series([1, pd.NA, 3, pd.NA, 5])
res = ser.fillna(0)
print(res)
Результат выполнения кода:
0 1
1 0
2 3
3 0
4 5
dtype: object