带有 Aggfunc 的数据透视表,结合了两个功能



我想创建一个带有结合了两个函数的 aggfunc 的数据透视表。我试过这个

 pivot=pd.pivot_table(data, columns='Genename', values=['Mediancoverage'],index='Componentnr', aggfunc=(np.median - np.std))

并得到此错误:

类型错误:不支持的操作数类型 -:"函数"和 "功能">

我理解问题所在,但解决方案是什么?

我认为你需要lambda - 带有熊猫函数的解决方案 median + std(ddof=0是必要的更改,因为默认情况下在熊猫中ddof=1(:

aggfunc=lambda x: x.median() - x.std(ddof=0)

什么与:

aggfunc=lambda x: np.median(x) - np.std(x)

样本:

data = pd.DataFrame({
    'Genename' : ['a','a','b','b', 'b', 'b'],
    'Mediancoverage' : [4, 1, 5, 3, 7, 5],
    'Componentnr' : [1,2,1,2,1,2],        
    })
print (data)
   Componentnr Genename  Mediancoverage
0            1        a               4
1            2        a               1
2            1        b               5
3            2        b               3
4            1        b               7
5            2        b               5

pivot=pd.pivot_table(data, 
                     columns='Genename', 
                     values='Mediancoverage',
                     index='Componentnr',
                     aggfunc=lambda x: x.median() - x.std(ddof=0))
print (pivot)
Genename     a  b
Componentnr      
1            4  5
2            1  3
pivot=pd.pivot_table(data, 
                     columns='Genename', 
                     values='Mediancoverage',
                     index='Componentnr',
                     aggfunc=lambda x: np.median(x) - np.std(x))
print (pivot)
Genename     a  b
Componentnr      
1            4  5
2            1  3

最新更新