根据另一列的总和将数据帧分为十分位数的方法

Way to bin a dataframe into deciles based on sum of another column

使用 pandas,我尝试使用排名分数 (x) 将数据帧分为十分位数,这样每个十分位数包含基于不同列 (y) 之和的相等值。

换句话说,它会填充每个小数位数,直到它达到某个值(y 的总和// 10),然后转到下一个小数位数。

我试过使用 cut 和 qcut,但它只按 x 拆分,而不是按 y 中的值拆分。

你可以用 cumsum + groupby

d={x: y for x , y df.groupby(df.y.cumsum()//10)}
d[0]