2017-09-15 4 views
1

J'ai un dataframe 16x10 panda avec des tableaux et des valeurs NaN à l'intérieur. Mon but est d'obtenir le premier index de chaque tableau avec python. À l'heure actuelle, j'essaie de le faire en utilisantPython: comment indexer dans une base de données (panda) constituée de tableaux et de NaN

df.applymap(lambda x: x[0])

mais en raison du NaN dans mon dataframe je reçois l'erreur suivante:

TypeError: ("'float' object is not subscriptable", 'occurred at index -2.0')

Toute idée comment indexer dans mon dataframe? My dataframe

+0

Quelque chose comme df.applymap (lambda x: x [0] si x sinon 0) – brennan

+0

Hey Brennan, merci pour votre recommandation! Votre idée lance une autre erreur: 'ValueError: ('La valeur de vérité d'un tableau avec plus d'un élément est ambigu.Utilisez a.any() ou a.all()', 's'est produit à l'index -2.0')' –

+0

si les conditions étaient cependant une bonne idée: 'df.applymap (lambda x: x [0] sinon np.isnan (x) .any() sinon 0)' fonctionne bien! Cependant, je vais calculer les valeurs moyennes sur les colonnes à l'étape suivante. Donc, au lieu de 0, je voudrais à nouveau insérer NaN. Comment ferais-je cela? –

Répondre

1

df.applymap(lambda x: x[0] if not np.isnan(x).any() else np.NAN)

fera le travail.