将分位数添加到数据帧作为多列

时间:2018-04-19 16:38:18

标签: python pandas statistics quantile

我怎样才能最轻松地使用熊猫' .quantile函数将多个分位数中的每一个的列添加到数据帧?

e.g。如果我的数据框如下:

1 A 10
1 B 1
2 A 6
2 C 13
3 D 15
3 G 1

我将在第一列中为每个分组添加一行,每个分位数的列如下:

1 <Quantile 1> <Quantile 2>
2 <Quantile 1> <Quantile 2>
3 <Quantile 1> <Quantile 2>

2 个答案:

答案 0 :(得分:3)

<强>设置

df
   A  B   C
0  1  A  10
1  1  B   1
2  2  A   6
3  2  C  13
4  3  D  15
5  3  G   1

或许groupby.quantile后跟unstack就是您要找的。

df.groupby('A')['C'].quantile([.25, .5, .75]).unstack()

   0.25  0.50   0.75
A                   
1  3.25   5.5   7.75
2  7.75   9.5  11.25
3  4.50   8.0  11.50

答案 1 :(得分:2)

我们可以使用describe

df.groupby('A').C.describe()[['25%','50%','75%']]
Out[1245]: 
    25%  50%    75%
A                  
1  3.25  5.5   7.75
2  7.75  9.5  11.25
3  4.50  8.0  11.50