Я недавно задал вопрос, на который был дан ответ - How do I add conditionally to a selection of cells in a pandas dataframe column when the the column is a series of lists?, но я считаю, что у меня есть новая проблема, о которой я раньше не думал.Вектовое решение для выбора условных данных
В следующей структуре данных мне нужно два условия, чтобы привести к изменению в столбце d
. Каждое значение в столбце d
является list
.
- Где
a == b
, конечное целое число в d увеличивается на единицу. Где
a != b
, список целых чисел увеличивается, а значение1
вставляется в концеlist
в колонкеd
.a b c d On On [0] [0,3] On Off [0] [0,1] On On [0] [2] On On [0] [0,4,4] On Off [0] [0]
В результате dataframe хотел бы это:
a b c d On On [0] [0,4] On Off [0] [0,1,1] On On [0] [3] On On [0] [0,4,5] On Off [0] [0,1]
Я понимаю, что это может быть сделано с помощью pd.Series.apply
метода в сочетании с заранее определенной функции или использование lambda
однако кадр данных состоит из 100000 строк, и я надеялся, что может существовать векторное решение этих двух условий.
Хранением нескалярного значения в качестве элементов данных опрометчиво и, как правило, вы потеряете доступ к vectorised методов, как нп и панды не имеет vectorised методы для добавления к список в векторном виде – EdChum
У меня было ощущение, что это может быть так. Как новый пользователь панд, что является более типичным способом захвата этих данных? В кадре данных имеется примерно полмиллиона обновлений, которые выполняются каждый раз с различными результатами в col 'a' и col' b'. Если 'a == b', то счет увеличивается, и если' a! = B', нужно запустить новый счет. – orgelzyklus