<p>您可以<strong>连接两个数据帧:</p>
<pre><code>>>> df1 = pd.pivot_table(df, values=['D'], rows=['B'], aggfunc=np.sum)
>>> df2 = pd.pivot_table(df, values=['E'], rows=['B'], aggfunc=np.mean)
>>> pd.concat((df1, df2), axis=1)
D E
B
A 1.810847 -0.524178
B 2.762190 -0.443031
C 0.867519 0.078460
</code></pre>
<p>或者可以将函数列表作为<code>aggfunc</code>参数传递,然后重新编制索引:</p>
<pre><code>>>> df3 = pd.pivot_table(df, values=['D','E'], rows=['B'], aggfunc=[np.sum, np.mean])
>>> df3
sum mean
D E D E
B
A 1.810847 -4.193425 0.226356 -0.524178
B 2.762190 -3.544245 0.345274 -0.443031
C 0.867519 0.627677 0.108440 0.078460
>>> df3 = df3.ix[:, [('sum', 'D'), ('mean','E')]]
>>> df3.columns = ['D', 'E']
>>> df3
D E
B
A 1.810847 -0.524178
B 2.762190 -0.443031
C 0.867519 0.078460
</code></pre>
<p>好吧,有一个选项可以单独为每一列定义<code>aggfunc</code>。不知道怎么做,可能会传入<code>aggfunc</code>dict类参数,比如<code>{'D':np.mean, 'E':np.sum}</code>。</p>
<p><strong>更新</strong>实际上,在您的情况下,您可以手动旋转</strong>:</p>
<pre><code>>>> df.groupby('B').aggregate({'D':np.sum, 'E':np.mean})
E D
B
A -0.524178 1.810847
B -0.443031 2.762190
C 0.078460 0.867519
</code></pre>