代码之家  ›  专栏  ›  技术社区  ›  ebrahimi

如何将describe()按组用于所有变量?

  •  2
  • ebrahimi  · 技术社区  · 7 年前

    如果您能让我知道如何应用描述()来计算汇总统计数据,我将不胜感激。我的数据( 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
    

    我想用“财务困境”来计算汇总统计数据,如下所示:

               count          mean       std     min     25%      50%    75%     max                            
    cat index                                                                                           
    x1  0         2474        1.4        1.3     0.07    0.95      1.1   1.54    38.1                           
        1         95          0.7        -1.7     0.02    2.9      2.1   1.75    11.2                           
    x2  0         2474        0.9        1.7     0.02    1.9      1.4   1.75    11.2                            
        1         95          .45        1.95     0.07    2.8      1.6   2.94    20.12                          
    x3  0         2474        2.4        1.5     0.07    0.85      1.2   1.3    30.1                            
        1         95          1.9        2.3     0.33    6.1      0.15   1.66    12.3
    

    我写了下面的代码,但是它并不能提供上述格式的答案。

    Statistics=pd.concat([TrainSet[TrainSet["Financial Distress"]==0].describe(),TrainSet[TrainSet["Financial Distress"]==1].describe()])
    Statistics.to_csv("Descriptive Statistics1.csv")
    

    提前谢谢。

    冷速溶液的结果:

        Financial Distress  count   mean               std
    x1           0          2474    1.398623286     1.320468688
    x1           1           95     1.028107053     0.360206966
    x10          0          2474    0.143310534     0.136257947
    x10          1           95    -0.032919408     0.080409407
    x100         0          2474    0.141875505     0.348992946
    x100         1           95     0.115789474     0.321669776
    
    1 回复  |  直到 7 年前
        1
  •  3
  •   jezrael    7 年前

    你可以用 DataFrameGroupBy.describe 具有 unstack 首先,但默认情况下,更改顺序是 reindex 以下内容:

    print (df)
       Financial Distress    x1    x2   x10
    0                   0  1.28  0.02  0.87
    1                   0  1.27  0.01  0.82
    2                   0  1.05 -0.06  0.92
    3                   1  1.11 -0.02  0.86
    4                   0  1.06  0.11  0.81
    5                   0  1.06  0.08  0.88
    6                   1  0.87 -0.03  0.79
    
    df1 = (df.groupby('Financial Distress')
             .describe()
             .unstack()
             .unstack(1)
             .reindex(df.columns[1:], level=0))
    

    print (df1)
                            count   mean       std   min     25%    50%     75%  \
        Financial Distress                                                        
    x1  0                     5.0  1.144  0.119708  1.05  1.0600  1.060  1.2700   
        1                     2.0  0.990  0.169706  0.87  0.9300  0.990  1.0500   
    x2  0                     5.0  0.032  0.066106 -0.06  0.0100  0.020  0.0800   
        1                     2.0 -0.025  0.007071 -0.03 -0.0275 -0.025 -0.0225   
    x10 0                     5.0  0.860  0.045277  0.81  0.8200  0.870  0.8800   
        1                     2.0  0.825  0.049497  0.79  0.8075  0.825  0.8425   
    
                             max  
        Financial Distress        
    x1  0                   1.28  
        1                   1.11  
    x2  0                   0.11  
        1                  -0.02  
    x10 0                   0.92  
        1                   0.86