Как добавить к счетчику на основе значений столбцов pandas

#python #pandas

#python #pandas

Вопрос:

У меня есть фрейм данных pandas из одной строки, и я хочу создать функцию, которая будет добавлять к трем различным счетчикам на основе значений в столбцах. Пример одной строки (алфавит — имена столбцов):

 | a | b | c | d | e | f | g | h | i |
-------------------------------------
| 1 | 0 | 1 | 0 | 0 | 1 | 1 | 0 | 1 |

 

Например, я хочу, чтобы функция сообщала, равно ли значение в столбце a 1, count1 = 1, если значение в столбце b равно 0, count2 =1, если значение в столбце c равно 1, count1 = 1 и т.д…
Я пробовал перебирать столбцы, но продолжал получать ошибку:

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

Комментарии:

1. можете ли вы предоставить свой набор данных?

2. будет очень сложно помочь вам с четким описанием ваших требований и показать нам код, который вы уже пробовали

Ответ №1:

Вы могли бы сделать что-то вроде этого:

 if frame['a'][0] == 1:
    count1  = 1
elif ...
 

Предполагая, что ваш фрейм находится в переменной с именем ‘frame’, и вы можете просто жестко запрограммировать связь между столбцами и правильными переменными count. Поскольку оба ‘a’ и ‘c’ соответствуют count1, похоже, вы не можете полагаться на простую итеративную абстракцию.

Комментарии:

1. Это сработало и было именно тем, что я хотел, мне просто нужно было использовать все операторы «if», а не elif, потому что все счетчики / столбцы независимы друг от друга, большое вам спасибо!