gpt4 book ai didi

python - 带有结合了两个函数的 aggfunc 的数据透视表

转载 作者:太空宇宙 更新时间:2023-11-04 00:36:14 24 4
gpt4 key购买 nike

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

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

得到这个错误:

TypeError: unsupported operand type(s) for -: 'function' and 'function'

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

最佳答案

我认为您需要 lambda - 具有 pandas 函数的解决方案 median + std (需要更改 ddof=0,因为默认情况下 pandas 中的 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

关于python - 带有结合了两个函数的 aggfunc 的数据透视表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43937776/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com