微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

python – 如何在数据透视表上添加总和和计数

这是我的数据集

customer_id hour    size
1              0       1
1              1      18
2              1       7

这是我的代码

table = a.pivot_table(index=['customer_id'], 
                      columns='hour', 
                      fill_value=0,
                      values='size')

这就是我所拥有的

hour            0   1
customer_id       
1               1  18
2               8   7

我需要的

hour            0   1   count  sum
customer_id       
1               1  18       2   19
2               0   7       1    7
count           1   2
sum             1  25

count是类别中的非零计数,sum是类别中的总和

解决方法:

一个可能的动态解决方案是省略fill_value = 0:

table = a.pivot_table(index='customer_id', 
                      columns='hour', 
                      values='size')
print (table)
hour           0     1
customer_id           
1            1.0  18.0
2            NaN   7.0

a = table.agg(['count','sum'])
b = table.T.agg(['count','sum']).T

print (table.fillna(0).append(a).join(b))
         0     1  count   sum
1      1.0  18.0    2.0  19.0
2      0.0   7.0    1.0   7.0
count  1.0   2.0    NaN   NaN
sum    1.0  25.0    NaN   NaN

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐