2017-07-15 3 views
0

J'ai une trame de données et j'ai sauvé la première ligne de cette trame de données suivanteComment filtrer les valeurs sur une série de python

first_row = data_model.loc[0,:] 

Si j'imprimer first_row, il ressemble à

label    class 
wa      3 
not     0 
im      2 
time     0 
see     2 
like     0 
going     2 
amp     1 
get     1 
one     0 

Je veux seulement garder les valeurs plus alors 0, donc j'utiliser first_row[first_row > 0], mais je reçois un message d'erreur comme:

TypeError: '>' not supported between instances of 'str' and 'int'.

Si j'utilise first_row[first_row != 0], j'obtiendrai ce que je veux.

+0

Vous pouvez modifier le message en cliquant sur le bouton « modifier » ci-dessous les questions balises –

+0

vos données doivent être entier, il est une chaîne. Vous ne pouvez pas comparer les entiers et les chaînes. –

+0

Voulez-vous dire "classe" stocke les valeurs comme des chaînes? Si c'est le cas, pourquoi 'first_row! = 0' fonctionne? – Nanan

Répondre

0

Utilisation de la fonction de requête de la trame de données renverra le résultat souhaité

df=pd.DataFrame({"label:["wa","not","im","time","see","lke","going"],"amp":`[3,0,2,0,2,0,2]}) 

df=df.query("amp>0") 

print(df) 

      amp label 
     0 3  wa 
     2 2  im 
     4 2 see 
     6 2 going