У меня есть объявление df, которое выглядит следующим образом:
user_id session_id timestamp
141.0 1.0 20190418 02:23:56.000
141.0 2.0 20190416 19:51:57.000
141.0 3.0 20190415 14:47:53.000
121.0 4.0 20190414 13:57:55.000
121.0 5.0 20190414 06:23:01.000
121.0 6.0 20190412 15:32:57.000
Я пытаюсь применить лямбда-функцию с группой, по которой для каждого user_id подсчитывается количество сеансов за последние 24 часа отметка времени сеанса:
Результат должен быть следующим:
user_id session_id timestamp 24-HourCount
141.0 1.0 20190418 02:23:56.000 0
141.0 2.0 20190416 19:51:57.000 0
141.0 3.0 20190415 14:47:53.000 na
121.0 4.0 20190414 13:57:55.000 3
121.0 5.0 20190414 06:23:01.000 1
121.0 6.0 20190413 15:32:57.000 na
Я попытался сгруппировать и посчитать количество строк (все сеансы имеют разные значения), но я получаю ошибку.
df['24-HourCount'] = df.groupby('user_id')['timestamp'].transform(lambda x:\
x.between(x.max()- dt.timedelta(days=1),x.max())).count()))
tried also applying the function:
def func(dfx):
k=dfx[dfx.between(dfx[0]-dt.timedelta(days=1),dfx[0])].count()
return(k)
df['24-HourCount']=df.groupby('user_id').apply(func)
Спасибо !!