[英]assign unique ID to each unique value in group after pandas groupby
我在R中看到了解决方案,但在python中却没有。 如果问题重复,请将我指向先前的问题/解决方案。
我有一个数据框如下。
df = pd.DataFrame({'col1': ['a','b','c','c','d','e','a','h','i','a'],'col2':['3:00','3:00','4:00','4:00','3:00','5:00','5:00','3:00','3:00','2:00']})
df
Out[83]:
col1 col2
0 a 3:00
1 b 3:00
2 c 4:00
3 c 4:00
4 d 3:00
5 e 5:00
6 a 5:00
7 h 3:00
8 i 3:00
9 a 2:00
我想做的是groupby'col1'并为col2中的不同值分配一个唯一的ID,如下所示:
col1 col2 ID
a 2:00 0
a 3:00 1
a 5:00 2
b 3:00 0
c 4:00 0
c 4:00 0
...
我尝试使用pd.Categorical,但无法完全达到我想要的位置。 将不胜感激。 谢谢。
我们可以使用pd.factorize()方法:
In [170]: df['ID'] = df.groupby('col1')['col2'].transform(lambda x: pd.factorize(x)[0])
In [171]: df
Out[171]:
col1 col2 ID
0 a 3:00 0
1 b 3:00 0
2 c 4:00 0
3 c 4:00 0
4 d 3:00 0
5 e 5:00 0
6 a 5:00 1
7 h 3:00 0
8 i 3:00 0
9 a 2:00 2
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.