2016-07-02 12 views
1

enthält habe ich eine CSV mit zwei Spalten Datei:Count, wenn eine andere Spalte einen Wert

fruits values 
bananas  2 
apples  5 
oranges  4 
pineapples 2 

Ich möchte die values wenn fruits hat „Äpfel“ in ihm summieren. Es sollte zurückkehren 5 + 2 = 7.

ich das versucht:

sum= 0 
if folha['fruits'].str.contains("apples"): 
    sum=sum+folha['values'].sum() 

Aber es gibt einen Fehler zurück:

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

Irgendwelche Gedanken?

+0

sind Sie nach: 'df.ix [df.fruits.isin ([ 'Äpfel']), 'Werte'] Summe()'.? – MaxU

Antwort

2

Das ist ziemlich einfach:

In [10]: df 
Out[10]: 
     fruits values 
0  bananas  2 
1  apples  5 
2  oranges  4 
3 pineapples  2 

In [11]: df[df.fruits.str.contains('apples')]['values'].sum() 
Out[11]: 7 
+0

Das hat super funktioniert! Ich habe versucht, str.contais und isin, aber mir fehlte etwas Syntax. Danke! –

+0

Was, wenn ich eine andere Bedingung von anderer Spalte hinzufügen wollte? Wie lautet die korrekte Syntax für das Skript df [df.fruits.str.contains ('apples')] ['values']. Sum()? –

Verwandte Themen