根据某些列的Groupby在Pandas中创建ID列

时间:2019-02-24 02:14:30

标签: python pandas group-by

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

enter image description here

我想基于time列的groupby()逻辑创建ID列,如下所示:

enter image description here

了解如何逐步执行此操作:使用index作为列或将groupby()rank函数一起使用:

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

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

谢谢!

1 个答案:

答案 0 :(得分:2)

Based on the input you could make use of 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