代码之家  ›  专栏  ›  技术社区  ›  ASH

我们能用pd.cut得到一个箱子和标签的中点或最右边的数字吗?

  •  0
  • ASH  · 技术社区  · 5 年前

    labels = pd.interval_range(start=0, freq=1, end=55)
    bins = pd.interval_range(start=0, freq=1, end=55)
    dataset['DVScores'] = pd.cut(dataset['DV'], bins=bins, labels=labels).fillna(labels[0])
    

    它给了我分数范围,但不是整数。所以,我看到了:

            DVScores  
    0         (10, 11]  
    1           (2, 3]  
    2           (1, 2]  
    3           (0, 1]  
    4         (13, 14]  
    

    我想把它做成这样的格式:

    11
    3
    2
    1
    14
    

    我看了看中间和右边,但我不能让它只给我一个号码。我相信,如果你硬编码,像这样:

    bins = [0, 1, 1.25, 1.5, 1.75, 2, 2.25, 2.5, 2.75, 3, 3.25, 3.5, 3.75, 4, 4.25, 4.5, 4.75, 5, 5.25, 5.5, 5.75, 6, 6.25, 6.5, 6.75, 7, 7.25, 7.5, 7.75, 8, 8.25, 8.5, 8.75, 9, 9.25, 9.5, 9.75, 10, np.inf]
    

    bins= pd.interval_range(start=0, freq=1, end=55)
    
    1 回复  |  直到 5 年前
        1
  •  1
  •   BMW    5 年前

    我想你在找合适的箱子。可使用以下命令检索:

    dataset['DVScores'].apply(lambda x: x.right)