如何将 pandas 中的数据拆分到指定的存储桶中,例如 40-40-20?

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 百分位数。

有任何想法吗?

Cor*_*ien 5

改用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)