熊猫中的多个AggFun

mik*_*sey 1 python pandas

如果您考虑使用数据透视表Excel,则可以添加其他列,并将总和更改为平均值或最小值或最大值.是否可以在pivotin中获取多个值Pandas

这是一个工作示例(取自pandas文档):

import pandas as pd
import numpy as np
df = pd.DataFrame({'A' : ['one', 'one', 'two', 'three'] * 6,
....:              'B' : ['A', 'B', 'C'] * 8,
....:              'C' : ['foo', 'foo', 'foo', 'bar', 'bar', 'bar'] * 4,
....:              'D' : np.random.randn(24),
....:              'E' : np.random.randn(24),
....:              'F' : np.random.randn(24)})
Run Code Online (Sandbox Code Playgroud)

这是一个透视示例:

pd.pivot_table(df, values=['D', 'E'], rows=['B'], aggfunc=np.mean)
Run Code Online (Sandbox Code Playgroud)

哪个回报:

    D           E
B       
A   -0.083449   -0.242955
B    0.826492   -0.058596
C    0.124266   -0.197583
Run Code Online (Sandbox Code Playgroud)

有没有办法np.sumpivot这里举例说明?

DSM*_*DSM 5

你可以通过一个列表pivot_tableaggfunc关键字参数:

>>> pd.pivot_table(df, values=['D', 'E'], rows=['B'], aggfunc=[np.mean, np.sum])
       mean                 sum          
          D         E         D         E
B                                        
A -0.102403  0.854174 -0.819224  6.833389
B  0.426928 -0.177344  3.415428 -1.418754
C -0.159123 -0.071418 -1.272980 -0.571341

[3 rows x 4 columns]
Run Code Online (Sandbox Code Playgroud)

(PS:你也可以使用方法版本,即df.pivot_table(stuff).)