#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, потому что все счетчики / столбцы независимы друг от друга, большое вам спасибо!