Уведомления

Группа в Telegram: @pythonsu

#1 Фев. 8, 2017 20:00:25

fartuk
Зарегистрирован: 2017-01-25
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

операция с таблицей pandas

Здравствуйте! Имеется таблица pandas с колонкой col, в которой записаны либо 0, либо 1. Нужно для каждой строки посчитать, сколько подряд идущих 1 в предыдущих строках. Например, если col было 0 0 1 1 1 0 1, то ответ должен быть 0 0 0 1 2 3 0. Помогите, пожалуйста, написать это, используя какие-либо встроенные функции, а то если писать влоб, используя цикл, то неприемлимо долго получается. Заранее спасибо.

Отредактировано fartuk (Фев. 8, 2017 20:00:52)

Офлайн

#2 Фев. 9, 2017 04:51:03

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

операция с таблицей pandas

Если я правильно понял задачу (а понять вас непросто) то как-то так

 from functools import reduce
s = "0011101"
print(reduce(lambda x, y: x + str(y if y != "1" else int(x[-1]) + int(y)),s))



Офлайн

#3 Фев. 9, 2017 08:52:33

fartuk
Зарегистрирован: 2017-01-25
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

операция с таблицей pandas

FishHook
Если я правильно понял задачу (а понять вас непросто) то как-то так
У меня не строка, а таблица с одной колонкой. В этой колонке в каждой строке содержится число: либо 0, либо 1. И теперь, если бы я делал циклом, то это выглядело бы примерно так: спускаюсь вниз по таблице и считаю число подряд идущих единиц и записываю результат в следующую строку. Если встретился 0, то счетчик обнуляется. Может побольше пример привести, если еще непонятно?

Офлайн

#4 Фев. 9, 2017 08:59:33

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

операция с таблицей pandas

fartuk
У меня не строка, а таблица с одной колонкой.
Ну и что? Переделайте алгоритм на ту конструкцию, которая конкретно у вас используется. Я вам дал направление решения, ваша задача это решение адаптировать под свою конкретику.


fartuk
Может побольше пример привести, если еще непонятно?
fartuk
У меня не строка, а таблица
показывайте свою таблицу



Офлайн

#5 Фев. 9, 2017 14:26:22

fartuk
Зарегистрирован: 2017-01-25
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

операция с таблицей pandas

Да, все верно, спасибо

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version