Панды, с условием - PullRequest
       1

Панды, с условием

0 голосов
/ 06 июня 2018

У меня есть набор данных в пандах с уникальным ключом события, личным ключом, датой и другими различными столбцами.Я пытаюсь добавить новый столбец, в котором будет указано количество событий для человека до даты в этой строке.Я продолжаю поиск, но нахожу результаты только для заданных критериев (т. Е. Df ['x'] = df [df ['date'] <'2018-06-01'], где дата не изменяется с каждой строкой) илидля метода .apply (function), который занимает много времени. </p>

Я думаю о том, чтобы поместить df в sqlite db, а затем соединить таблицу с самим собой, а затем подсчитать различный оператор case.Пример ниже.Тем не менее, есть дополнительные манипуляции, которые мне нужно сделать впоследствии, и я предполагаю, что должен быть более быстрый способ сделать это в Python.Любые предложения?

Sample data in df- dates repeat and not in order. Multiple people can be on one date and a person can have multiple events on a single date.
[Event, person, date]
[1,1,2018-01-03]
[2,1,2018-01-01]
[3,1,2018-01-02]
[4,2,2018-01-04]
[5,2,2018-01-05]

Desired output

[Event, person, date, count of evnt]
[1,1,2018-01-03,    2]
[2,1,2018-01-01,    0]
[3,1,2018-01-02,    1]
[4,2,2018-01-04,    0]
[5,2,2018-01-05,    1]

Извините за формат, я нахожусь на моем телефоне.

Пример:

Скажите, что поля Evebt, человек, дата я бы

Select event, 
             person, 
             date,  
             Count (distinct (case when ((t2.date less than
t1.date) And (t2.person=t1.person))
 Then t2.event else null end)) event_count

From t1

Left outer join t1 as t2 on (t2.event=t1.event)

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