我怎样才能最轻松地使用熊猫' .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>
答案 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
就是您要找的。 p>
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