将分位数作为多列添加到数据框中
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
如何最轻松地使用 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