美文网首页
python 用groupby之后生成新的数据框

python 用groupby之后生成新的数据框

作者: 丙吉 | 来源:发表于2020-11-19 11:17 被阅读0次

    最近在做一点点风控的东西,想把toad中的ks_bucket改修正下,原码里面是按得分的最大最小值划分的bucket,但我在实际的应用中想更个性化的划分节点去统计。

    首先需要解决的一个问题是把0~1上的概率给划分到不同的区间,然后分别统计即可。

    之前一直用groupby,分组后想count, sum,后变成df。在网上找了好几种方法,都没有成功,最后还是英文文档解决了我的问题。

    bin_00 = [0, 0.2, 0.25, 0.3, 0.35, 0.4, 0.45, 0.5, 0.55, 0.6, 0.65, 0.7, 0.75, 0.8, 1]  # 要分组的切割点
    OOT['bucket'] = pd.cut(OOT['probi_1'], bin_00)    # OOT['probi_1'] 是 我要划分的列
    
    image.png

    这是划分好后的各列情况 , 第一列:概率,第二列:所属的区间, 第三列: 实际的label

    我主要是 想把这三列 , 按第二列分组,统计各区间的总数,和label为1的数
    用NamedAgg 即可把原来的分组变为数据框。

    OOT_groupby = OOT.groupby("bucket", as_index=False).agg(
        total=pd.NamedAgg(column="probi_1", aggfunc="count"),
        bads=pd.NamedAgg(column="label", aggfunc="sum"))
    
    image.png

    相关文章

      网友评论

          本文标题:python 用groupby之后生成新的数据框

          本文链接:https://www.haomeiwen.com/subject/pemkiktx.html