根据另一列的总和将数据帧分为十分位数的方法
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]
使用 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]