Форум сайта python.su
добрый день,
есть задача переноса значений по условию.
представим простой dataframe
SOURCE VALUE
yandex / organic 0.40
google / organic 0.01
google / cpc 0.01
google / cpc 0.01
google / cpc 0.01
yandex / organic 0.01
yandex / organic 0.01
google / organic 0.40
нужно перенести value и приплюсовать к значению ниже если sorce содержит organic
и так по строкам. если доходит до строки, где sorce содержит cpc, прибавить к его значению все расее приплюсованные значения от строк с organic. Если на след. строке сново есть cpc - value оставляем без изменения. если не было больше cpc, плюсуем всё к значению последней строки в датафрейме.
вот что планируется получить в результате
SOURCE VALUE
yandex / organic 0.00
google / organic 0.00
google / cpc 0.42
google / cpc 0.01
google / cpc 0.01
yandex / organic 0.00
yandex / organic 0.00
google / organic 0.42
как я это вижу, нужна переменная foo = 0
добавим новый столбец value2
перебираеть датафрейм по строкам
применять к строке str.contains('organic', regex=False)
если скрипт находит - value2 делаем равным foo, то есть 0
после foo += value и идём на строку ниже.
мне кажется логика моя не верна. если есть идеи, как решить задачу более корректно, прошу подсказать
Офлайн