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?

Vaibhav Thakur
la source
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.

Djib2011
la source
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