Get group id back into pandas dataframe

后端 未结 3 1124
别那么骄傲
别那么骄傲 2020-12-04 18:26

For dataframe

In [2]: df = pd.DataFrame({\'Name\': [\'foo\', \'bar\'] * 3,
   ...:                    \'Rank\': np.random.randint(0,3,6),
   ...:                     


        
3条回答
  •  谎友^
    谎友^ (楼主)
    2020-12-04 18:58

    Use GroupBy.ngroup from pandas 0.20.2+:

    df["GroupId"] = df.groupby(["Name", "Rank"]).ngroup()
    print (df)
      Name  Rank       Val  GroupId
    0  foo     2  0.451724        4
    1  bar     0  0.944676        0
    2  foo     0  0.822390        2
    3  bar     2  0.063603        1
    4  foo     1  0.938892        3
    5  bar     2  0.332454        1
    

提交回复
热议问题