Recherche…


Remarques

Gotcha en général est une construction bien que documentée, mais pas intuitive. Les Gotchas produisent des résultats normalement inattendus en raison de leur caractère contre-intuitif.

Le paquet Pandas a plusieurs pièges, qui peuvent induire en erreur quelqu'un, qui n'en a pas connaissance, et certains d'entre eux sont présentés sur cette page de documentation.

Détecter les valeurs manquantes avec np.nan

Si vous voulez détecter les manquements avec

df=pd.DataFrame({'col':[1,np.nan]})
df==np.nan

vous obtiendrez le résultat suivant:

col
0    False
1    False

C’est parce que la comparaison des valeurs manquantes avec quelque chose donne lieu à un False - au lieu de cela, vous devez utiliser

df=pd.DataFrame({'col':[1,np.nan]})   
df.isnull()

qui se traduit par:

col
0    False
1    True

Entier et NA

Les pandas ne prennent pas en charge les attributs manquants du type entier. Par exemple si vous avez des manques dans la colonne de notation:

df= pd.read_csv("data.csv", dtype={'grade': int}) 
error: Integer column has NA values

Dans ce cas, vous devez simplement utiliser float au lieu de nombres entiers ou définir le type d'objet.

Alignement automatique des données (comportement indexé)

Si vous souhaitez ajouter une série de valeurs [1,2] à la colonne de dataframe df, vous obtiendrez NaN:

import pandas as pd

series=pd.Series([1,2])
df=pd.DataFrame(index=[3,4])
df['col']=series
df

   col
3    NaN
4    NaN

car la définition d'une nouvelle colonne aligne automatiquement les données par l'index et vos valeurs 1 et 2 obtiendront les index 0 et 1 et non 3 et 4 comme dans votre bloc de données:

df=pd.DataFrame(index=[1,2])
df['col']=series
df

   col
1      2.0
2      NaN

Si vous voulez ignorer l'index, vous devez définir les valeurs à la fin:

df['col']=series.values

   col
3    1
4    2


Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow