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

Add quantiles to dataframe as multiple columns

如何最轻松地使用 pandas' .quantile 函数为数据框的多个分位数中的每一个添加一列?

例如如果我的数据框看起来像:

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>

设置

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

我们可以使用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