подсчет значений столбцов на основе строк - PullRequest
0 голосов
/ 20 октября 2018

У меня есть два столбца, в первом есть строки либо YES, либо NO, а в другом - числовое значение.Я хочу создать новый столбец, его значения основаны на умножении значений во втором столбце.

  • Пропустить строки с YES, следующие за первым YES
  • Пропустить строки с NO, чтоследуйте за первым NO
  • Умножьте первое YES на первое NO.

Фактический фрейм данных

COL1 =['YES','YES','NO','YES','YES','YES','YES','NO','YES','YES','NO',]
COL2 = [1,2,6,3,5,4,7,1,7,2,2]

Требуемый фрейм данных

   |COL1|COL2|COL3|

    |YES|1|0|
    |YES|2|0|
    |NO|6|6|
    |YES|3|18|
    |YES|5|1|
    |YES|4|1|
    |YES|7|1|
    |NO|1|3|
    |YES|7|7|
    |YES|2|1|
    |NO|2|14|

1 Ответ

0 голосов
/ 20 октября 2018

Предполагая, что это ваша структура данных:

data=[['yes', 1], ['yes','2'], ...]

пусть last равны не проигнорированным данным, в данном случае данным [0] для первого «да».

while last[0] == data[index][0]:
    data[index].append(0)
    index++

Чтобы решить умножение, замените append(0) на append(last[1] * data[index][1]) и продолжайте до конца, индекс достигает конца данных.

И так как, кажется, есть некоторые различия с вашими первыми 2 'да'и значения «1», флаг также не должен быть сложным, чтобы добавить «предыдущий» флаг.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...