J'essaie d'utiliser Python Pandas pour compter les visiteurs qui reviennent quotidiennement sur mon site Web pendant une période donnée.
Exemple de données :
df1 = pd.DataFrame({'user_id':[1,2,3,1,3], 'date':['2012-09-29','2012-09-30','2012-09-30','2012-10-01','2012-10-01']})
print df1
date user_id
0 2012-09-29 1
1 2012-09-30 2
2 2012-09-30 3
3 2012-10-01 1
4 2012-10-01 3
Ce que j'aimerais avoir comme résultat final :
df1_result = pd.DataFrame({'count_new':[1,2,0], 'date':['2012-09-29','2012-09-30','2012-10-01']})
print df1_result
count_new date
0 1 2012-09-29
1 2 2012-09-30
2 0 2012-10-01
Le premier jour, il y a 1 nouvel utilisateur car l'utilisateur 1 apparaît pour la première fois.
Le deuxième jour, il y a 2 nouveaux utilisateurs : l'utilisateur 2 et l'utilisateur 3 apparaissent tous deux pour la première fois.
Enfin, au troisième jour, il y a 0 nouvel utilisateur : l'utilisateur 1 et l'utilisateur 3 sont déjà apparus au cours des périodes précédentes.
Jusqu'à présent, j'ai cherché à fusionner deux copies d'un même cadre de données et à en décaler une d'une date, mais sans succès :
pd.merge(df1, df1.user_id.shift(-date), on = 'date').groupby('date')['user_id_y'].nunique()
Toute aide serait très appréciée,
Merci