2017-06-16 1 views
1
for Country in energy: 
    if energy[Country] == 'United States': 

Dies ist ein Datenrahmen in Pandas durchqueren namens Energie. Energie hat alle Länder in alphabetischer Reihenfolge mit Land als Spalte aufgelistet. df energy Es gibt mir immer einen ValueError, wenn ich schreibe es in einer wenn Anweisung, aber wenn ich nur tun zurück es funktioniert.ValueError: Der Wahrheitswert einer Serie ist mehrdeutig. Verwenden Sie a.empty, a.bool(), a.item(), a.any() oder a.all(). für einen String-Vergleich

--------------------------------------------------------------------------- 
ValueError        Traceback (most recent call last) 
<ipython-input-61-e820508b0b91> in <module>() 
    20 
    21  return energy 
---> 22 answer_one() 

<ipython-input-61-e820508b0b91> in answer_one() 
    16 
    17  for Country in energy: 
---> 18   if energy[Country] == 'United States': 
    19    return 
    20 

/opt/conda/lib/python3.5/site-packages/pandas/core/generic.py in __nonzero__(self) 
    890   raise ValueError("The truth value of a {0} is ambiguous. " 
    891       "Use a.empty, a.bool(), a.item(), a.any() or a.all()." 
--> 892       .format(self.__class__.__name__)) 
    893 
    894  __bool__ = __nonzero__ 

ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all(). 
+3

Fügen Sie keinen Link zu den Daten in der Frage ein, geben Sie ein Beispiel in die Frage ein, niemand will auf einen unbekannten externen Link klicken. – Ding

+0

können Sie die ganze Fehlerspur – depperm

+0

@Ding tut mir leid, erstmals Buchung, dieser Link geht an das Bild, wie der DataFrame strukturiert ist. – veridian

Antwort

0

haben Sie einen Versuch:

{ 
a = energy[Country] == 'United States' 
    if a.any(): # if any one is Ture, return True' 
    if a.all(): # if the all is Ture, return True. else,return False' 
} 

Vielleicht kann es Ihnen helfen.

0

Wahrscheinlich möchten Sie if Country == 'United States':, nicht if energy[Country] == 'United States':. Letzterer vergleicht die Werte in der Spalte 'Vereinigte Staaten' mit der Zeichenfolge 'Vereinigte Staaten' (und gibt eine Reihe zurück).

Verwandte Themen