我用
df = df.pivot_table(index='ID', columns='domain', values='active_seconds', aggfunc=np.var)
返回差异
但我需要在函数中添加参数ddof=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