我在 3d 字典中有数据:
movieid, date,customer_id,views
0, (2011,12,22), 0, 22
0, (2011,12,22), 1, 2
0, (2011,12,22), 2, 12
.....
0, (2011,12,22), 7, 2
0, (2011,12,23), 0, 123
..所以基本上数据代表了每个客户每天观看一部电影的次数..每个客户(只有 8 个客户)..
现在,我想计算……平均每位顾客观看一部电影的次数。
所以基本上
movie_id,customer_id, avg_views
0, 0, 33.2
0, 1 , 22.3
and so on
解决这个问题的pythonic方法是什么。
塔肯
编辑:
data = defaultdict(lambda : defaultdict(dict))
date = datetime.datetime(2011,1,22)
data[0][date][0] = 22
print data
defaultdict(<function <lambda> at 0x00000000022F7CF8>,
{0: defaultdict(<type 'dict'>,
{datetime.datetime(2011, 1, 22, 0, 0): {0: 22}}))
假设只有 2 位客户、1 部电影和 2 天的数据
movie_id, date, customer_id,views
0 , 2011,1,22,0,22
0 , 2011,1,22,1,23
0 , 2011,1,23,0,44
注意:客户 1 没有在 1 月 23 日观看 id 0 的电影现在答案是
movie_id,customer_id,avg_views
0 , 0 , (22+44)/2
0, 1, (23)/1