我有一个 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
Run Code Online (Sandbox Code Playgroud)
我需要创建一个如下所示的数据透视表
Limit <=18 >18
New xx1 xx2
Old xx3 xx4
MAP xx5 xx6
Run Code Online (Sandbox Code Playgroud)
其中值 xx1、xx2、xx3、xx4、xx5 和 xx6 是相应限制的新值、旧值和映射值的平均值。我怎样才能实现这个目标?我尝试了以下操作但没有成功。
table = df.pivot_table('count', index=['New', 'Old', 'MAP'], columns=['Limit'], aggfunc='mean')
Run Code Online (Sandbox Code Playgroud)
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
Run Code Online (Sandbox Code Playgroud)