【问题标题】:How to apply scipy.stats.describe to each group?如何将 scipy.stats.describe 应用于每个组?
【发布时间】:2023-03-23 20:59:01
【问题描述】:

如果您能告诉我如何应用scipy.stats.describe 来按组计算汇总统计信息,我将不胜感激。我的数据(TrainSet)是这样的:

Financial Distress  x1       x2      x3
0                   1.28    0.02    0.87
0                   1.27    0.01    0.82
0                   1.05    -0.06   0.92
1                   1.11    -0.02   0.86
0                   1.06    0.11    0.81
0                   1.06    0.08    0.88
1                   0.87    -0.03   0.79

我想按“财务困境”计算汇总统计数据。我的意思是这样的post 但通过scipy.stats.describe 因为我需要按组对 x1、x2 和 x3 进行偏度和峰度。但是,我的代码没有按组提供统计信息。

    desc=dict()
    for col in TrainSet.columns:
        if [TrainSet["Financial Distress"]==0]:
            desc[col] = describe(TrainSet[col]())
            df = pd.DataFrame.from_dict(desc, orient='index')
            df.to_csv("Descriptive Statistics3.csv")

其实我需要这样的东西:

Group                                    0                                                                 1                       
statistics          nobs    minmax       mean   variance    skewness    kurtosis    nobs    minmax       mean   variance    skewness    kurtosis
Financial Distress  2569    (0, 1)        0.0     0.0         4.9           22.1    50      (0, 1)        0.0     0.0         2.9         22.1
x1                  2569    (0.1, 38)     1.4     1.7        16.5           399.9   50      (-3.6, 3.8)    0.3    0.1         0.5         21.8
x2                  2569    (-0.2, 0.7)  0.1      0.0         1.0           1.8     50      (-0.3, 0.7)    0.1    0.0         0.9         1.2
x3                  2569    (0.1, 0.9)   0.6      0.0        -0.5           -0.2    50      (0.1, 0.9)     0.6    0.0        -0.6         -0.3
x4                  2569    (5.3, 6.3)    0.9     0.3         3.2           19.7    50      (-26, 38)     14.0   12.0        15.1         26.5
x5                  2569    (-0.2, 0.8)   0.2     0.0         0.8            1.4    50      (0.3, 0.9)     0.4    0.0        0.5          -0.3

或者

            nobs     minmax     mean       variance     skewness    kurtosis                            
x1  0        5  (1.05, 1.28)    1.144      0.01433  4.073221e-01    -1.825477                               
    1        2  (0.87, 1.11)    0.990      0.02880  1.380350e-15    -2.000000                               

x2  0        5   (-0.06, 0.11)    0.032      0.00437 -1.992376e-01    -1.130951                             
    1        2  (-0.03, -0.02)   -0.025      0.00005  1.058791e-15    -2.000000                             

x3  0        5  (0.81, 0.92)    0.860      0.00205  1.084093e-01    -1.368531                           
    1        2  (0.79, 0.86)    0.825      0.00245  4.820432e-15    -2.000000                           

提前致谢,

【问题讨论】:

    标签: python python-3.x pandas scipy statistics


    【解决方案1】:

    如果您希望按组独立描述 3 个系列,您似乎需要 3 个数据框。您可以构建这些数据框,然后将它们连接起来:

    from scipy.stats import describe
    
    grouper = df.groupby('FinancialDistress')
    
    variables = df.columns[1:]
    
    res = pd.concat([pd.DataFrame(describe(g[x]) for _, g in grouper)\
                       .reset_index().assign(cat=x).set_index(['cat', 'index']) \
                     for x in variables], axis=0)
    
    print(res)
    
               nobs          minmax   mean  variance      skewness  kurtosis
    cat index                                                               
    x1  0         5    (1.05, 1.28)  1.144   0.01433  4.073221e-01 -1.825477
        1         2    (0.87, 1.11)  0.990   0.02880  1.380350e-15 -2.000000
    x2  0         5   (-0.06, 0.11)  0.032   0.00437 -1.992376e-01 -1.130951
        1         2  (-0.03, -0.02) -0.025   0.00005  1.058791e-15 -2.000000
    x3  0         5    (0.81, 0.92)  0.860   0.00205  1.084093e-01 -1.368531
        1         2    (0.79, 0.86)  0.825   0.00245  4.820432e-15 -2.000000
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-03-01
      • 2012-03-07
      • 2021-05-25
      • 1970-01-01
      • 2018-06-06
      • 1970-01-01
      • 1970-01-01
      • 2019-04-24
      相关资源
      最近更新 更多