У меня есть такой набор данных,
user_id event_name event_timestamp origin
0 1001790 deals 2020-01-01 12:07:05.089002
1 1001818 purchase 2019-10-30 09:15:38.810000 ICN
2 1001969 deals 2019-12-16 01:11:06.595004
3 1001969 deals 2019-12-16 01:11:22.811008
4 1001969 purchase 2019-12-21 12:20:24.405000 PUS
5 1001969 view_item 2019-12-21 12:22:01.318000 ICN
es = ft.EntitySet(id="dataset")
variable_types = {
'event_timestamp': ft.variable_types.Datetime,
'user_id': ft.variable_types.Id,
'origin': ft.variable_types.Categorical,
'event_name': ft.variable_types.Categorical,
}
es.entity_from_dataframe(
entity_id='total',
dataframe=total,
index='event_timestamp',
variable_types=variable_types,
)
es.normalize_entity(
base_entity_id='total',
new_entity_id='users',
index='user_id',
copy_variables=['event_timestamp'],
make_time_index=False,
)
es.normalize_entity(
base_entity_id='total',
new_entity_id='origin',
index='origin',
make_time_index=False,
)
es.normalize_entity(
base_entity_id='total',
new_entity_id='event_name',
index='event_name',
make_time_index=False,
)
И я хочу получить результат, подобный
NUM_UNIQUE(total.event_name) NUM_UNIQUE(total.origin)
user_id time
1001818 2019-10-30 09:15:38.810000 1 1
1001969 2019-12-21 12:11:06.595004 1 0
2019-12-21 12:11:22.811008 1 0
2019-12-21 12:20:24.405000 1 1
2019-12-21 12:22:01.318000 2 2
1001790 2020-01-01 12:07:05.089002 1 1
Таким образом, если я установлю окно 5 минут, в user_id 1001969, накопительный счет не должен работать между вторым и третьим.