Mat*_*s12 1 python statistics binning pandas
全部,
我试图将我的数据分成 3 个部分,即 40%、40% 和 20%。我怎样才能使用熊猫做到这一点?例如,这样你就可以得到底部最低的 40%、中间 40% 和顶部 20% :
pd.cut(df['count'], 5,labels = ['1','2','3','4','5'],retbins=True)
Run Code Online (Sandbox Code Playgroud)
上面分为 5 个五分位数,但我想定义 40:40:20 百分位数。
有任何想法吗?
改用qcut:
df["quantile"] = pd.qcut(df["count"], q=[0, 0.4, 0.8, 1],
labels=["lowest", "middle", "top"])
Run Code Online (Sandbox Code Playgroud)
>>> df.sort_values("count")
count quantile
4 5 lowest
7 7 lowest
6 9 lowest
15 9 lowest
5 17 lowest
1 19 lowest
9 22 lowest
2 25 lowest
16 25 lowest
12 29 middle
19 31 middle
18 32 middle
0 32 middle
10 36 middle
14 38 middle
3 39 middle
8 44 top
11 47 top
17 47 top
13 48 top
Run Code Online (Sandbox Code Playgroud)
获取垃圾箱:
df["quantile"], bins = pd.qcut(df["count"], q=[0, 0.4, 0.8, 1],
labels=["lowest", "middle", "top"],
retbins=True)
Run Code Online (Sandbox Code Playgroud)