Diyelim ki bir kullanıcı etkinliği günlüğüm var ve toplam süre ve günlük benzersiz kullanıcı sayısı raporu oluşturmak istiyorum.
import numpy as np
import pandas as pd
df = pd.DataFrame({'date': ['2013-04-01','2013-04-01','2013-04-01','2013-04-02', '2013-04-02'],
'user_id': ['0001', '0001', '0002', '0002', '0002'],
'duration': [30, 15, 20, 15, 30]})
Toplama süresi oldukça basittir:
group = df.groupby('date')
agg = group.aggregate({'duration': np.sum})
agg
duration
date
2013-04-01 65
2013-04-02 45
Yapmak istediğim şey, süreyi toplamak ve aynı zamanda farklıları saymak, ancak count_distinct için bir eşdeğer bulamıyorum:
agg = group.aggregate({ 'duration': np.sum, 'user_id': count_distinct})
Bu işe yarıyor, ama kesinlikle daha iyi bir yolu var, değil mi?
group = df.groupby('date')
agg = group.aggregate({'duration': np.sum})
agg['uv'] = df.groupby('date').user_id.nunique()
agg
duration uv
date
2013-04-01 65 2
2013-04-02 45 1
Bir Series nesnesinin farklı öğelerinin sayısını toplama işlevine döndüren bir işlev sağlamam gerektiğini düşünüyorum, ancak elimdeki çeşitli kitaplıklara çok fazla maruz kalmıyorum. Ayrıca, groupby nesnesi bu bilgiyi zaten biliyor gibi görünüyor, bu yüzden sadece çabayı kopyalıyor olmaz mıyım?