【问题标题】:Categorize age into another column age group将年龄分类到另一个列年龄组
【发布时间】:2020-10-08 07:54:14
【问题描述】:

我有这个数据集

age
24
32
29
23
23
31
25
26
34

我想使用 python 进行分类并将结果保存到新列“agegroup”中,这样 年龄之间; 23 到 26 在年龄组列中返回 1, 27-30 在年龄组列中返回值 2 和 31-34 在年龄组列中返回 3

【问题讨论】:

    标签: python pandas dataframe dataset


    【解决方案1】:

    您可以使用pandas.cut

    给定:

    >>> df
       age
    0   24
    1   32
    2   29
    3   23
    4   23
    5   31
    6   25
    7   26
    8   34
    

    解决方案:

    >>> df.assign(agegroup=pd.cut(df['age'], bins=[23, 27, 31, 35], right=False, labels=[1, 2, 3]))
       age agegroup
    0   24        1
    1   32        3
    2   29        2
    3   23        1
    4   23        1
    5   31        3
    6   25        1
    7   26        1
    8   34        3
    

    【讨论】:

    • df.assign(agegroup=df['agegroup']= 的值是多少
    • @DavidErickson df.assign(agegroup=...) 给出了新的 df 但df['agegroup'] 改变了原来的 df。
    • @DavidErickson 前者返回一个新的 df 并且可以链接,后者就地工作。
    • 谢谢!我也快速阅读了这篇文章:stackoverflow.com/questions/48177914/… 我将开始使用 df.assign
    【解决方案2】:

    您也可以使用字典来执行此操作。键值对。键将是不同的年龄范围,特定键的值将是该特定年龄组的计数。

    groupDict={'23-26':0,'27-30':0,'31-34':0}

    for i in ages:
     if i>=23 and i<=26:
       groupDict['23-26']+=1
     elif i>=27 and i<=30:
       groupDict['27-30']+=1
     elif i>=31 and i<=34:
       groupDict['27-30']+=1
    

    【讨论】:

      猜你喜欢
      • 2019-10-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-26
      相关资源
      最近更新 更多