pandas
Gotchas de pandas
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