Groupby计数,平均值,Q1,Q2,Q3和大熊猫标准偏差

时间:2020-02-05 15:24:54

标签: python pandas pandas-groupby

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

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 =这种组合发生的次数,只是计数

平均租金=这种组合的平均租金

Q1 = Q1租金,依此类推

Std =租金的标准差。

注意:我无法编写某些列的值,因为我无法计算该值。

1 个答案:

答案 0 :(得分:1)

GroupBy.describeDataFrame.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