pandas 将列拆分为具有相等行的十分位数,如何强制忽略重复值

np8igboo  于 2022-12-16  发布在  其他
关注(0)|答案(1)|浏览(135)

以下是来自predict_proba的概率示例数据。我希望将此数据框拆分为十分位数,但每个十分位数中的行数相等。我使用了pd.qcut,但由于边界处的重复值,每个十分位数中的行数变得不相等。

我使用下面的方法来获得工作的平等分裂,但问题是这种方法,我不能得到箱(范围)。
测试_df[“顶部_小数点”] = pd.qcut(测试_df[“验证_PROB_1”].等级(方法=“第一个”),10,retbins =假,标签= [ 10、20、30、40、50、60、70、80、90、100])
对于每一个十分位数,我们还需要看到概率范围,这就是我们需要最终输出的方式:


是否有一个干净的实现可以实现这一点?

nmpmafwu

nmpmafwu1#

这是我最终实现的方式:
测试_df[“顶部_小数点”] = pd.qcut(测试_df[“验证_PROB_1”].等级(方法=“第一个”),10,retbins =假,标签= [100、90、80、70、60、50、40、30、20、10])
测试df =测试df.合并(测试df.分组(“顶部十进制数”)[“验证过程1”].聚集([“最小值”,“最大值”]),右索引=真,左索引=“顶部十进制数”)
测试_df[“概率范围”] =“[”+(测试_df[“最小值”]).测试类型(字符串)+“-“+测试_df[“最大值”].测试类型(字符串)+“]”
但应该有一个更干净的方法。

相关问题