pandas versus Excel 学习笔记16(透视表,分组,聚合(group by))

 制作类似透视表

方法一:DataFrame.pivot_table(index='xx',columns='xx',values='xx',aggfunc=xx)

import pandas as pd
import numpy as np
pd.options.display.max_columns=999
orders=pd.read_excel('023/Orders.xlsx')
orders['Year']=pd.DatetimeIndex(orders['Date']).year
pt1=orders.pivot_table(index='Category',columns='Year',values='Total',aggfunc=np.sum)
#aggregation function用来聚合的函数
print(pt1)

结果:

Year                 2011          2012          2013          2014
Category                                                           
Accessories  2.082077e+04  1.024398e+05  6.750247e+05  4.737876e+05
Bikes        1.194565e+07  2.898552e+07  3.626683e+07  1.745318e+07
Clothing     3.603148e+04  5.555877e+05  1.067690e+06  4.612336e+05
Components   6.391730e+05  3.880758e+06  5.612935e+06  1.669727e+06

方法二:

orders['Year']=pd.DatetimeIndex(orders['Date']).year
groups=orders.groupby(['Category','Year'])
s=groups['Total'].sum()
c=groups['ID'].count()
pt2=pd.DataFrame({'sum':s,'count':c})
print(pt2)

结果:

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值