2016-07-02 4 views
1

У меня есть CSV-файл с двумя колонками:графа, если другой столбец содержит значение

fruits values 
bananas  2 
apples  5 
oranges  4 
pineapples 2 

Я хотел бы суммировать valuesfruits если таковые есть «яблоки» в нем. Она должна возвращать 5 + 2 = 7.

Я попытался это:

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

Но он возвращает ошибку:

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

Любые мысли?

+0

вы после: 'df.ix [df.fruits.isin ([ 'яблоки']), 'значения'] сумма()'.? – MaxU

ответ

2

Это довольно просто:

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

Это сработало отлично! Я пробовал str.contais и isin, но мне не хватало какого-то синтаксиса. Thanx! –

+0

Что делать, если я хотел добавить другое условие из другого столбца? Каков правильный синтаксис сценария df [df.fruits.str.contains ('apples')] ['values']. Sum()? –

Смежные вопросы