2017-02-23 1 views
0

J'essaie d'extraire une valeur 'output', qui est un int, de la base de données 'fusionnée' et la somme pour toutes les lignes contenant deux attributs. J'ai besoin de sélectionner la valeur pour une année spécifique et une variable fictive qui a été assignée à chaque ligne de données, puis additionner toutes les valeurs qui ont ces deux caractéristiques. J'ai essayé de le faire comme ceci:Erreur lors de la tentative de sélection de données à partir d'une base de données basée sur deux attributs

sumforyr = merged[merged['year'] == 2000 and merged['dummy'] == 1]['output'].sum() 

Cependant, en cours d'exécution cela me donne l'erreur:

ValueError: The truth value of a Series is ambiguous. 

Ai-je besoin de boucle à travers chaque ligne et vérifier ces attributs de cette façon? Est-ce que le problème est que la série est évaluée en une fois plutôt que par rangée?

+0

'sumforyr = merged.loc [(fusionnée [ 'année'] == 2000) & (== 1 fusionné [ 'factice']), 'sortie'] somme (.) ' – MaxU

+0

Aussi: fusionné ['sumforyr'] = fusionné ['output'] [fusionné ['year'] == 2000 & fusionné ['factice'] == 1] .sum() –

+0

@AndrewL qui me donne le même ValueError – Sveinn

Répondre

0

Démo:

In [21]: merged 
Out[21]: 
    year dummy output 
0 2000  1  1 
1 2000  1  10 
2 2000  2  2 
3 2001  3  3 

In [22]: merged.loc[(merged['year'] == 2000) & (merged['dummy'] == 1), 'output'].sum() 
Out[22]: 11