【问题标题】:Creating ID column in Pandas based on Groupby of certain column [duplicate]基于特定列的Groupby在Pandas中创建ID列[重复]
【发布时间】:2019-02-24 11:06:50
【问题描述】:

拥有一列这样的 Pandas 数据框:

我想根据time 列的 groupby() 逻辑创建 I​​D 列,如下所示:

知道如何逐步做到这一点:将index 用作列或将groupby() 与rank 函数一起使用:

df['ID'] = df.groupby('time')['time'].rank(method='first')

但是如何使用请求的方式来完成呢?

谢谢!

【问题讨论】:

    标签: python pandas group-by


    【解决方案1】:

    根据您可以使用pd.factorize() 的输入:

    df['ID']=pd.factorize(df.time)[0]
    print(df)
    
           time  ID
    0  01.09.16   0
    1  01.09.16   0
    2  01.09.16   0
    3  02.09.16   1
    4  02.09.16   1
    5  02.09.16   1
    6  03.09.16   2
    7  03.09.16   2
    8  03.09.16   2
    

    【讨论】:

      猜你喜欢
      • 2023-01-17
      • 1970-01-01
      • 2019-02-08
      • 2020-09-16
      • 2021-11-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-31
      相关资源
      最近更新 更多