Różnica między isna () i isnull () w pandach

69

Od dłuższego czasu używam pand. Ale, że nie rozumie, co jest różnica między isna()i isnull()w pand. I, co ważniejsze, którego użyć do zidentyfikowania brakujących wartości w ramce danych.

Jaka jest podstawowa różnica bazowy jak wartość nie jest wykrywany jako albo naalbo null?

Vaibhav Thakur
źródło
1
Dwie funkcje są takie same. Obie podają brakujące wartości.
Ankit Seth

Odpowiedzi:

90

Pandy isna()vs isnull().

Zakładam, że masz na myśli pandas.DataFrame.isna()vs pandas.DataFrame.isnull(). Nie mylić z tym pandas.isnull(), co w przeciwieństwie do dwóch powyższych nie jest metodą klasy DataFrame.

Te dwie metody DataFrame robią dokładnie to samo! Nawet ich dokumenty są identyczne. Możesz to nawet potwierdzić w kodzie pandy .

Ale dlaczego dwie metody o różnych nazwach robią to samo?

Wynika to z faktu, że ramki danych pand są oparte na ramkach danych R. W R nai nullsą dwie odrębne rzeczy. Przeczytaj ten post, aby uzyskać więcej informacji.

Jednak w Pythonie pandy są zbudowane na numpy, które nienanull ma ani wartości. Zamiast tego numpy ma NaNwartości (co oznacza „Not a Number”). W związku z tym pandy również używają NaNwartości.

W skrócie

  • Aby wykryć NaNwartości, których używa Numpy np.isnan().

  • Aby wykryć NaNwartości, panda używa albo .isna()albo .isnull().
    Te NaNwartości są dziedziczone z faktu, że pandy jest zbudowany na szczycie numpy, natomiast nazwy dwóch funkcji pochodzą z DataFrames R, w których struktura i funkcjonalność pandy próbował naśladować.

Djib2011
źródło
3
To wyjaśnia wszystko i tak, chciałem wnioskować o „pandas.DataFrame.isna ()„ vs ”pandas.DataFrame.isnull ()”. Dzięki za tak szczegółowe wyjaśnienie.
Vaibhav Thakur