djlbolgs

数据聚合与分组操作-数据透视表

import numpy as np
import pandas as pd

tips = pd.DataFrame({\'total_bill\':np.arange(50,70),
                    \'tip\':np.arange(20,40),
                    \'smoker\':[\'Yes\',\'No\',\'Yes\']*6+[\'No\',\'No\'],
                    \'day\':[\'Fri\',\'Sun\',\'Thu\',\'Sat\']*5,
                    \'time\':[\'Lunch\',\'Dinner\']*10,
                    \'size\':np.arange(1,21),
                    \'tip_pct\':np.random.rand(20)})
tips

 

  

  

tips.pivot_table(index=[\'day\',\'smoker\'])  # 默认取平均值

  

    size tip tip_pct total_bill
day smoker        
Fri No 11.000000 30.000000 0.330234 60.000000
Yes 7.666667 26.666667 0.506731 56.666667
Sat No 14.000000 33.000000 0.406182 63.000000
Yes 10.666667 29.666667 0.499115 59.666667
Sun No 8.000000 27.000000 0.356128 57.000000
Yes 11.333333 30.333333 0.725151 60.333333
Thu No 15.000000 34.000000 0.826657 64.000000
Yes 8.333333 27.333333 0.517562 57.333333
tips.groupby([\'day\',\'smoker\']).mean()  # 与上句同效果

  

    size tip tip_pct total_bill
day smoker        
Fri No 11.000000 30.000000 0.330234 60.000000
Yes 7.666667 26.666667 0.506731 56.666667
Sat No 14.000000 33.000000 0.406182 63.000000
Yes 10.666667 29.666667 0.499115 59.666667
Sun No 8.000000 27.000000 0.356128 57.000000
Yes 11.333333 30.333333 0.725151 60.333333
Thu No 15.000000 34.000000 0.826657 64.000000
Yes 8.333333 27.333333 0.517562 57.333333
tips.pivot_table(\'tip_pct\',index=[\'time\',\'smoker\'],columns=\'day\',
                aggfunc=len,margins=True)

  

  day Fri Sat Sun Thu All
time smoker          
Dinner No NaN 2.0 2.0 NaN 4.0
Yes NaN 3.0 3.0 NaN 6.0
Lunch No 2.0 NaN NaN 2.0 4.0
Yes 3.0 NaN NaN 3.0 6.0
All   5.0 5.0 5.0 5.0 20.0
tips.pivot_table(\'tip_pct\',index=[\'time\',\'smoker\'],columns=\'day\',
                aggfunc=\'count\',margins=True)   # 集成函数写成\'count\',与上句同效果

  

  day Fri Sat Sun Thu All
time smoker          
Dinner No NaN 2.0 2.0 NaN 4.0
Yes NaN 3.0 3.0 NaN 6.0
Lunch No 2.0 NaN NaN 2.0 4.0
Yes 3.0 NaN NaN 3.0 6.0
All   5.0 5.0 5.0 5.0 20.0

分类:

技术点:

相关文章: