в Pandas Я хочу добавить значение в один столбец «B» в зависимости от булевых значений из другого столбца «A». Поэтому, если «A» - «Истина», тогда начните подсчет (т. Е. Добавьте каждую новую строку), если «A» - false. Когда «A» - True сброс и снова начнет отсчет. Мне удалось сделать это с помощью цикла «за», но это очень трудоемко. Мне интересно, нет ли более эффективного решения времени?Добавление счетчика к предыдущей ячейке в Pandas
результат должен выглядеть следующим образом:
Date A B
01.2010 False 0
02.2010 True 1
03.2010 False 2
04.2010 False 3
05.2010 True 1
06.2010 False 2
Я тестирую время как для решения, так и для первого решения другой вывод - первая строка имеет '1' в вашем решении, а не' 0' в столбце 'B'. И если контрольные тайминги с 'len (df) = 7000':'% timeit (al (df1)) 100 циклов, лучше всего 3: 3,75 мс за цикл 'против'% timeit (jez (df)) 100 циклов, лучше всего 3: 2,29 мс за цикл ». Последнее вы потеряли 2 очка за прием. Но это зависит от вас, если вы думаете, что лучше принять ваше решение. – jezrael
И если нужно, нет проблем. ;) – jezrael
@jezrael, большое спасибо. Исходя из Excel/vba, я нашел свое представленное решение более интуитивно понятным и выполнил эту работу в реальной жизни. Тем не менее ваше решение более pandaesque. Мне еще предстоит изучить разницу cumcount() и cumsum(). –