代码之家  ›  专栏  ›  技术社区  ›  Alex Xu

如何计算具有相同前缀的ID并将总数存储在另一列中

  •  0
  • Alex Xu  · 技术社区  · 6 年前

    我有一个数据集,其中我注意到ID附带了用于分类的信息。基本上,ID的最后两位数字代表同一家族中的子ID(01、02、03等)。下面是一个示例。我正在尝试获取另一列(第二列)来存储同一系列的子ID数量信息。e、 g.,22302属于223家族,223家族有三个成员:22301、22302和22303。因此,我有一个新的分类建模功能。不确定是否有更好的方法来提取信息。无论如何,有人能告诉我如何提取同一类中的数字吗(如第2列所示)

    ID同一类

    23401 1

    22302 3

    43201 1

    144501 2

    144502 2

    22301 3

    22303 3

    1 回复  |  直到 6 年前
        1
  •  1
  •   BENY    6 年前

    你可以用 str 切片和 transform

    df['New']=df.groupby(df.ID.astype(str).str[:-2]).ID.transform('size')
    df
    Out[223]: 
           ID  Sameclass  New
    0   23401          1    1
    1   22302          3    3
    2   43201          1    1
    3  144501          2    2
    4  144502          2    2
    5   22301          3    3
    6   22303          3    3