У меня есть следующий фреймворк данных на Python (несколько строк по магазину продукта и комбинации недели (отсортировано)).Подсчитайте количество предыдущих нулей на основе последнего вхождения
product store week visit prob
123 321 1 0 0.003
123 321 2 0 0.234
123 321 3 1 0
123 321 4 0 0.198
123 301 1 0 0.290
123 301 2 2 0
123 301 3 0 0.989
123 301 4 4 0.788
Я хочу найти кумулятивную вероятность, умноженную на число предыдущих нулей в столбце посещения. Например: для каждой недели недели магазина товаров я найду первое появление посещений> 0. Затем подсчитайте количество предыдущих нулей. А затем умножьте все строки в столбце prob, пока я не нахожу значение> 0 и последнюю неделю для этой комбинации хранилища. Что-то вроде ниже. Для посещения> 0 cum_prob можно оставить пустым или 0.
product store week visit prob cum_prob
123 321 1 0 0.003 0.000702
123 321 2 0 0.234 0.000702
123 321 3 1 0
123 321 4 0 0.198 0.198
123 301 1 0 0.290 0.290
123 301 2 2 0
123 301 3 0 0.989 0.989
123 301 4 4 0.788
Как я могу добиться этого в Python? В SAS я мог использовать массивы и некоторые циклы.
Очень ценный, не могли бы вы также объяснить второй последний шаг. Transform part – Mukul
[transform] (http://pandas.pydata.org/pandas-docs/stable/groupby.html#transformation) возвращает объект с тем же индексом, который передается значениям 'groupby' для репликации внутри групп. – piRSquared
Мне действительно не нравится этот ответ. Очень запутанный и трудно следовать. –