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

Python 如何在数据透视表上添加总和和计数,python,pandas,dataframe,pivot-table,Python,Pandas,Dataframe,Pivot Table,这是我的数据集 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,

这是我的数据集

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

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

一种可能的位动态解决方案是省略
填充值=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

您的输出有
count
/
sum
行和
count
/
sum
列。你确定这就是你想要的吗?@jpp如果你有任何现有库的更完整的答案,你可以回答为什么在列表中传递索引
index=['customer\u id']
?@pyd-不必是DataFramewhat type(table)?,我得到的是
AttributeError:'DataFrame'对象没有
a=table.agg的属性'agg'
(['count','sum'])
这是熊猫0.20.0中新增的