熊猫:计算pivot_table中的差异

时间:2017-05-15 12:51:46

标签: python pandas numpy variance

我用

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

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

1 个答案:

答案 0 :(得分:0)

使用lambda

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

或使用默认ddof=1的{​​{3}}:

aggfunc='var'

样品:

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