1.原始数据形式
hour id clicked
1 1 0
2 1 1
2 0
4 1
reindex = list(df1.index.levels[0]) #获取hour的索引值 转成list--->[1,2,3]
recolumns = list(df1.index.levels[1])# 获取广告的索引值--->[1,2,4]
hour id clicked
1 1 0
2 1 1
2 0
4 1
3 1 1
hour代表时间,id代表广告号,clicked代表是否被点击,1表示被点击了,下面将他转换成每个时刻,每个广告被点击了多少次.
2.获取两层索引值,也就是hour和id 索引值:
recolumns = list(df1.index.levels[1])# 获取广告的索引值--->[1,2,4]
df1表示原始数据
3.创建一个全0的空df2,大小为 时间长度*广告ID种类
df2 = pd.DataFrame(data = np.zeros((len(reindex),len(recolumns))),index = reindex,columns = recolumns)
4.进行统计
for t in reindex:
for i in df1.ix[t,:].index: ##此处获取当前时刻下有的id号
df2.ix[t,i] = df1.ix[t,i].sum() ## 利用sum函数进行统计1的数量
print(df4)
最终获得,如下形式,行代表广告id,列代表时间
1 2 4
1 0.0 0.0 0.0
2 1.0 0.0 1.0
3 1.0 0.0 0.0
ps:本人初学,记录下来为了方便以后查看。欢迎各位大佬提出更好的方法。