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

Pandas根据另一列的值创建一个包含索引的新列

  •  0
  • deppep  · 技术社区  · 4 年前

    我有这样一个数据帧:

    a
    
    
    4.0
    5.5
    5.5
    6.7
    7.9
    7.9
    9.4
    

    我想添加一个名为 b ,“索引”第一个中的值。 新的数据帧看起来像:

    a   b
    
    4.0 1
    5.5 2
    5.5 2
    6.7 3
    7.9 4
    7.9 4
    9.4 5
    

    非常感谢。

    1 回复  |  直到 4 年前
        1
  •  2
  •   Carlos Bergillos    4 年前

    你可以用 pd.factorize :

    codes, uniques = pd.factorize(df['a'])
    
    df['b'] = codes
    

    (或 df['b'] = codes + 1 如果希望这些索引从1开始,而不是从0开始)