在pivot中附加的行/列/总和的总和

时间:2017-07-28 16:08:28

标签: python pandas dataframe pivot-table

我使用下面的pivot_table命令来满足我的要求,即以下列格式显示结果

active_def = pd.pivot_table(data, index = 'InMonth', columns= 'OutMonth', aggfunc= 'count')['ID']

我需要在具有行总数的数据透视表末尾的列。类似地,一行朝向具有列总数的行,一个单元具有表中所有值的总和。 (简单来说,类似于我们通常在excel中获得的数据透视)。有pythonized方式吗?我知道我们可以使用data.sum(axis=0/1)单独获取,但是,我正在寻找更好的方法来实现它。

谢谢!

pivot table results

1 个答案:

答案 0 :(得分:2)

使用@Parfait建议:

PyNumber_Multiply

OR

你可以使用这个单行:

数据设置

active_def = pd.pivot_table(data, index = 'InMonth', columns= 'OutMonth', aggfunc= 'count', margins=True)['ID']

计算行,列和整个数据框的总计:

df = pd.DataFrame(data=np.triu(np.random.randint(0,13,(12,12))),
                  columns=np.arange(1,13), 
                  index=np.arange(1,13))

输出:

df.append(pd.Series(df.sum(),name='Total'))\
  .assign(Total=df.sum(1))\
  .set_value('Total','Total',df.values.sum())
相关问题