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 na
albo null
?
Odpowiedzi:
Pandy
isna()
vsisnull()
.Zakładam, że masz na myśli
pandas.DataFrame.isna()
vspandas.DataFrame.isnull()
. Nie mylić z tympandas.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
na
inull
są dwie odrębne rzeczy. Przeczytaj ten post, aby uzyskać więcej informacji.Jednak w Pythonie pandy są zbudowane na numpy, które nie
na
null
ma ani wartości. Zamiast tego numpy maNaN
wartości (co oznacza „Not a Number”). W związku z tym pandy również używająNaN
wartości.W skrócie
Aby wykryć
NaN
wartości, których używa Numpynp.isnan()
.Aby wykryć
NaN
wartości, panda używa albo.isna()
albo.isnull()
.Te
NaN
wartoś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ć.źródło