【发布时间】:2019-02-24 11:06:50
【问题描述】:
拥有一列这样的 Pandas 数据框:
我想根据time 列的 groupby() 逻辑创建 ID 列,如下所示:
知道如何逐步做到这一点:将index 用作列或将groupby() 与rank 函数一起使用:
df['ID'] = df.groupby('time')['time'].rank(method='first')
但是如何使用请求的方式来完成呢?
谢谢!
【问题讨论】:
拥有一列这样的 Pandas 数据框:
我想根据time 列的 groupby() 逻辑创建 ID 列,如下所示:
知道如何逐步做到这一点:将index 用作列或将groupby() 与rank 函数一起使用:
df['ID'] = df.groupby('time')['time'].rank(method='first')
但是如何使用请求的方式来完成呢?
谢谢!
【问题讨论】:
根据您可以使用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
【讨论】: