平均值为

时间:2016-05-07 09:13:41

标签: python pandas

我有一个pandas数据框,df,看起来像这样;

index  New  Old  MAP      Limit  count
1       93   35   54       > 18      1
2      163   93  116       > 18      1
3      134   78   96       > 18      1
4      117   81   93       > 18      1
5      194  108  136       > 18      1
6      125   57   79      <= 18      1
7       66   39   48       > 18      1
8      120   83   95       > 18      1
9      150   98  115       > 18      1
10     149   99  115       > 18      1
11     148   85  106       > 18      1
12      92   55   67      <= 18      1
13      64   24   37       > 18      1
14      84   53   63       > 18      1
15      99   70   79       > 18      1

我需要创建一个看起来像这个

的数据透视表
Limit   <=18   >18
New      xx1   xx2
Old      xx3   xx4
MAP      xx5   xx6

其中值xx1,xx2,xx3,xx4,xx5和xx6是各自限制的New,Old和Map的平均值。 我怎样才能做到这一点? 我尝试了以下但没有成功。

table = df.pivot_table('count', index=['New', 'Old', 'MAP'], columns=['Limit'], aggfunc='mean')

1 个答案:

答案 0 :(得分:3)

解决方案

df.groupby('Limit')['New', 'Old', 'MAP'].mean().T

Limit  <= 18        > 18
New    108.5  121.615385
Old     56.0   72.769231
MAP     73.0   88.692308