计算熊猫的独特广告展示次数

时间:2018-07-15 19:49:58

标签: python pandas datetime dataframe analytics

我正在使用一个相当大的数据框,其中包括三个主要列:

df = pd.DataFrame({
         'ad_id': [2441, 102, 133, 102, 102, 2441, 105, 301],
         'user_id': [665, 152, 12, 665, 11, 238, 665, 12],
         'view_time': ['09/12/2017 10:11', '11/12/2017 10:22', '1/12/2017 10:22', '11/12/2017 10:35', '11/12/2017 13:01', '11/12/2017 14:11', '11/12/2017 14:38', '11/12/2017 14:52'],
})

其中view_time似乎与熊猫datetime兼容。

我的目标是识别并打印4个具有唯一身份视图数量最多的广告(即,特定用户在24小时窗口中的视图,其中在初始唯一身份视图之后记录的视图不算作唯一身份),或者失败即,获得 n 个广告,这些广告具有最多的非重复(对于任何给定用户,不同的view_time值)观看次数。

我尝试使用以下内容:

df = df.groupby(by=['ad_id'], as_index=False).agg({'user_id': pd.Series.nunique, 'view_time': pd.Series.nunique})

但是,这似乎在计数正确的唯一视图或基于viewcount排序ad_id值(不管它有多大)上几乎没有帮助。

1 个答案:

答案 0 :(得分:1)

d = df.assign(
    view_time=
    pd.to_datetime(df.view_time).dt.date
).drop_duplicates()

d.groupby('ad_id').size().nlargest(4)