date | 20170307 | 20170308 |
iphone4 | 2 | 0 |
iphone5 | 2 | 1 |
iphone6 | 0 | 1 |
先生成DF数据。
>>> df = pd.DataFrame.from_dict([['ip4','20170307',1],['ip4','20170307',1],['ip5','20170307',1],['ip5','20170307',1],['ip6','20170308',1],['ip5','20170308',1]])
>>> df.columns=['type','date','num']
>>>df
type date num
0 ip4 20170307 1
1 ip4 20170307 1
2 ip5 20170307 1
3 ip5 20170307 1
4 ip6 20170308 1
5 ip5 20170308 1
>>> pd.pivot_table(df,values='num',rows=['type'],cols=['date'],aggfunc=np.sum).fillna(0)
操作一下就是实现结果。
注:这个函数的参数形式在0.13.x版本里有效,其他版本请参考相应文档。
从0.14.0开始,参数形式升级成pd.pivot_table(df,values='num',index=['type'],columns=['date'],aggfunc=np.sum).fillna(0)