Для последовательных различий, которые, по-видимому, наиболее целесообразны, учитывая ваше объяснение:
df.sort_values('date').groupby('email').apply(lambda x: x.date.diff().std()).fillna(0)
Вывод:
email
cinthia_leon87@hotmail.com 0 days 00:00:00
cuadros.paolo@gmail.com 48 days 05:04:12.988006
davida.alvarado.703@gmail.com 0 days 00:00:00
jessica26011@hotmail.com 0 days 00:00:00
luchosuito@gmail.com 0 days 00:00:00
miluska-paico@hotmail.com 0 days 00:00:00
paola.alvarado@rumah.com.pe 14 days 18:10:16.764069
rlez_1202@hotmail.com 23 days 06:17:04.453408
dtype: timedelta64[ns]
.std()
будет нулевым для групп с 1 значением не-null value и, поскольку. diff
уменьшает количество ненулевых наблюдений на 1, это автоматически возвращает NaN
для любых групп с 2 или менее измерениями, которые мы заполняем 0.
Также простоПомните, что по умолчанию для pandas
используется N-1
степеней свободы.