【问题标题】:Pandas: count variance in pivot_tablePandas:计算数据透视表中的差异
【发布时间】:2017-10-14 06:31:23
【问题描述】:

我用

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

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

【问题讨论】:

    标签: python pandas numpy variance


    【解决方案1】:

    使用lambda:

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

    或者使用GroupBy.var 和默认ddof=1

    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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-08-23
      • 2019-05-12
      • 1970-01-01
      • 2016-09-06
      • 2018-10-19
      • 2017-05-13
      • 2012-11-16
      相关资源
      最近更新 更多