Pandas:统计数据透视表中的差异

2024-04-26 14:32:46 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用

df = df.pivot_table(index='ID', columns='domain', values='active_seconds', aggfunc=np.var)

返回差异 但我需要将参数ddof=1添加到函数中,因为结果是错误的。 我怎么能做到呢?在


Tags: columnsiddf参数indexvardomainnp
1条回答
网友
1楼 · 发布于 2024-04-26 14:32:46

使用lambda

aggfunc=lambda x: np.var(x, ddof=1)

或将^{}与默认值ddof=1一起使用:

^{pr2}$

样品:

np.random.seed(10)
df = pd.DataFrame({'ID':np.random.choice(list('def'),size=30), 
                   'domain':np.random.choice(list('abc'),size=30),
                   'active_seconds':np.random.randint(10,size=30)})

print (df.head())
  ID  active_seconds domain
0  e               1      c
1  e               7      b
2  d               1      b
3  d               4      b
4  e               0      b

df1 = df.pivot_table(index='ID', 
                     columns='domain', 
                     values='active_seconds', 
                     aggfunc=lambda x: np.var(x, ddof=1))
print (df1)
domain          a          b          c
ID                                     
d        8.333333   8.333333  10.000000
e        8.000000  11.300000  16.333333
f       19.000000   8.000000  24.500000

df1 = df.pivot_table(index='ID', columns='domain', values='active_seconds', aggfunc='var')
print (df1)
domain          a          b          c
ID                                     
d        8.333333   8.333333  10.000000
e        8.000000  11.300000  16.333333
f       19.000000   8.000000  24.500000

相关问题 更多 >