Différence entre isna () et isnull () dans les pandas


73

J'utilise des pandas depuis un certain temps. Mais, je n'ai pas compris quelle est la différence entre isna()et isnull()dans les pandas. Et, plus important encore, lequel utiliser pour identifier les valeurs manquantes dans le cadre de données.

Quelle est la différence fondamentale sous-jacente de la manière dont une valeur est détectée en tant que naou null?


1
Les deux fonctions sont identiques. Les deux donnent les valeurs manquantes.
Ankit Seth

Réponses:


94

Pandas isna()vs isnull().

Je suppose que vous faites référence pandas.DataFrame.isna()vs pandas.DataFrame.isnull(). Ne pas confondre avec pandas.isnull()ce qui, contrairement aux deux précédents, n'est pas une méthode de la classe DataFrame.

Ces deux méthodes DataFrame font exactement la même chose! Même leurs documents sont identiques. Vous pouvez même le confirmer dans le code des pandas .

Mais pourquoi deux méthodes avec des noms différents font-elles la même chose?

En effet, les DataFrames de pandas sont basés sur les DataFrames de R. En R naet nullsont deux choses distinctes. Lisez ce post pour plus d'informations.

Cependant, en python, pandas géants est construit au - dessus de numpy, qui n'a ni naninull valeurs. Au lieu de cela, numpy a des NaNvaleurs (ce qui signifie "pas un nombre"). Par conséquent, les pandas utilisent également des NaNvaleurs.

En bref

  • Pour détecter les NaNvaleurs que numpy utilise np.isnan().

  • Pour détecter les NaNvaleurs, les pandas utilisent soit .isna()ou .isnull().
    Les NaNvaleurs sont héritées du fait que les pandas sont construits sur Numpy, alors que les noms des deux fonctions proviennent de DataFrames de R, dont la structure et la fonctionnalité ont été imitées par les pandas.


3
Cela explique tout et oui je voulais déduire 'pandas.DataFrame.isna ()' contre 'pandas.DataFrame.isnull ()'. Merci pour cette explication détaillée.
Vaibhav Thakur
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.