Разница между isna () и isnull () в пандах

73

Я уже давно пользуюсь пандами. Но я не понял, в чем разница между isna()и isnull()в пандах. И, что более важно, какой из них использовать для определения пропущенных значений в кадре данных.

Какова основная разница в том, как значение определяется как naили null?

Вайбхав Тхакур
источник
1
Две функции одинаковы. Оба дают недостающие значения.
Анкит Сет

Ответы:

94

Панды isna()против isnull().

Я предполагаю, что вы имеете в виду pandas.DataFrame.isna()против pandas.DataFrame.isnull(). Не путать с тем pandas.isnull(), что в отличие от двух выше не является методом класса DataFrame.

Эти два метода DataFrame сделать точно то же самое! Даже их документы идентичны. Вы даже можете подтвердить это в коде панд .

Но почему два метода с разными именами делают одно и то же?

Это потому, что DataFrames панд основаны на DataFrames R. В R naи nullдве разные вещи. Прочтите этот пост для получения дополнительной информации.

Однако в python pandas построен поверх numpy, который не имеет ниnanull значений, ни значений. Вместо этого numpy имеет NaNзначения (что означает «не число»). Следовательно, панды также используют NaNценности.

Короче говоря

  • Для обнаружения NaNзначений используется NumPy np.isnan().

  • Для определения NaNзначений панды использует либо .isna()или .isnull().
    Эти NaNзначения унаследованы от того , что панды построены на вершине NumPy, в то время как имена двух функций происходят из DataFrames АиРа, чья структура и функциональность панд пытались имитировать.

Djib2011
источник
3
Это объясняет все, и да, я хотел бы сделать вывод «pandas.DataFrame.isna ()» против «pandas.DataFrame.isnull ()». Спасибо за такое подробное объяснение.
Вайбхав Тхакур