首页 > 解决方案 > 大熊猫的分组计数,平均值,Q1,Q2,Q3和标准差

问题描述

我有一个如下所示的数据框

ID     Sector    Year            Usage   Rent       
1      SE1       2017            R       100            
2      SE1       2017            C       120            
3      SE1       2017            R       150            
4      SE1       2017            R       110            
5      SE1       2017            C       200            
6      SE1       2018            R       100            
7      SE1       2018            R       120            
8      SE1       2018            R       100            
9      SE1       2018            C       100            
10     SE1       2018            C       100  
1      SE2       2017            R       100            
2      SE2       2017            C       120            
3      SE2       2017            R       150            
4      SE2       2017            R       110            
5      SE2       2017            C       200            
6      SE2       2018            R       100            
7      SE2       2018            R       120            
8      SE2       2018            R       100            
9      SE2       2018            C       100            
10     SE2       2018            C       100 
11     SE2       2018            C       100           

从上面的数据框我想准备下面的数据框

预期产出

Sector     Year     Usage     N_of_contract      Mean_Rent    Q1   Q2   Q3   Std
SE1        2017     R         3
SE1        2017     C         2
SE1        2018     R
SE1        2018     C
SE2        2017     R         
SE2        2017     C         
SE2        2018     R
SE2        2018     C

其中 N_of_contract = 这种组合发生的次数,只是计数

Mean_Rent = 这种组合的平均租金

Q1 = Q1 租金等等

Std = 租金的标准差。

注意:我没有写一些列的值,因为我无法计算那一列。

标签: pythonpandaspandas-groupby

解决方案


GroupBy.describe与 一起使用DataFrame.drop

new_df = (df.groupby(['Sector','Year','Usage'])['Rent']
            .describe()
            .drop(columns = ['min','max'])
            .reset_index()
            )
print(new_df)
  Sector  Year Usage  count        mean        std    25%    50%    75%
0    SE1  2017     C    2.0  160.000000  56.568542  140.0  160.0  180.0
1    SE1  2017     R    3.0  120.000000  26.457513  105.0  110.0  130.0
2    SE1  2018     C    2.0  100.000000   0.000000  100.0  100.0  100.0
3    SE1  2018     R    3.0  106.666667  11.547005  100.0  100.0  110.0
4    SE2  2017     C    2.0  160.000000  56.568542  140.0  160.0  180.0
5    SE2  2017     R    3.0  120.000000  26.457513  105.0  110.0  130.0
6    SE2  2018     C    3.0  100.000000   0.000000  100.0  100.0  100.0
7    SE2  2018     R    3.0  106.666667  11.547005  100.0  100.0  110.0

推荐阅读