2017-05-23 3 views
0

J'utilise read_csv pour charger des données de Yahoo Finance conduit à des lignes contenant 0 parfois comme chaîne et à d'autres fois comme nombre entier. Essayer de déposer/supprimer ces lignes par masquage booléenne:Supprimer toutes les lignes de pandas dataframe contenant 0 comme chaîne et entier

df[(df != '0') & (df != 0)] 

conduit à des erreurs:

TypeError: Could not compare ['0'] with block values 

(dans le cas où la trame de données n'a pas de rangée de la valeur de chaîne « 0 ») et

TypeError: Could not compare [0] with block values 

(dans le cas où la trame n'a pas de valeur entière 0).

+0

pourrait vous accepter/upvote ma réponse si elle satisfait votre question? Si non, pourriez-vous commenter davantage sur votre problème? –

Répondre

0

Avec la trame de données suivante:

df = pd.DataFrame({'int': [0,0,2,3,0,0,1,2,3], 
    'string': ['0','1','2','3','0','0','1','2','0']}) 

    int string 
0 0  0 
1 0  1 
2 2  2 
3 3  3 
4 0  0 
5 0  0 
6 1  1 
7 2  2 
8 3  0 

Le code suivant devrait fonctionner:

df = df[df.string != '0'] 
df = df[df.int != 0] 

Cela donne le résultat suivant:

int string 
2 2  2 
3 3  3 
6 1  1 
7 2  2