数据透视表上的多个聚合函数

时间:2019-01-18 04:37:28

标签: python pandas

如何在所有列的数据透视表上而不是在数据透视表上的单个列上获取多重聚合函数。这是我的数据透视表

kpi_date     2019-01-01  2019-01-02     ...      2019-01-16  2019-01-17
ssaname                                 ...                            
Bangalore         43029       40038     ...           37599       39125
Belgaum            6975        6554     ...            7172        7274
Bellary            7163        6751     ...            7221        7103
Bidar              1603        1466     ...            1759        1693
Bijapur            4534        4283     ...            5022        4968
Chikmagalur        9177        8304     ...            5723        7442
Davangere          1949        1810     ...            2402        2368
Gulbarga           4265        4014     ...            4573        4504
Hassan             4898        4632     ...            4914        5027
Hubli              8974        8265     ...            9145        9169
Karwar            10059        9581     ...           10097       10345
Kodagu             7461        6838     ...            7422        7253
Kolar              2991        2698     ...            2793        2833
Mandya             1418        1317     ...            1386        1357
Mangalore         24765       23398     ...           24890       24993
Mysore             8774        7867     ...            7598        8107
Raichur            4271        4003     ...            4489        4391
Shimoga            8738        8097     ...            8791        8833
Tumkur             2612        2431     ...            2549        2560

我想要从2019-01-01到2019-01-17的列的总和,平均值,最大值

1 个答案:

答案 0 :(得分:1)

使用agg

df.agg(['mean','sum','max'])
         2019-01-01     2019-01-02     2019-01-16     2019-01-17
mean    8613.473684    8018.263158    8186.578947    8386.578947
sum   163656.000000  152347.000000  155545.000000  159345.000000
max    43029.000000   40038.000000   37599.000000   39125.000000

如果需要使用stack

的所有值
df.stack().agg(['max','mean','min'])
max     43029.000000
mean     8301.223684
min      1317.000000
dtype: float64

如果需要所有行

df.T.agg(['mean','sum','max'])