我有以下数据:
ID Time
1 01-01-01
1 02-01-01
1 02-01-01
2 01-01-01
我想从 0 开始,并按组 ID 为每个新时间一个一个地增加。所以我需要得到类似的东西
ID Time Result
1 01-01-01 0
1 02-01-01 1
1 02-01-01 1
2 01-01-01 0
有没有一种聪明的方法可以很快做到这一点? (请注意,这只是为了说明,实际数据足够大。)
最佳答案
您可以将 groupby
与 pd.factorize
一起使用:
df['Result'] = df.groupby('ID')['Time'].transform(lambda x: pd.factorize(x)[0])
df
输出:
ID Time Result
0 1 01-01-01 0
1 1 02-01-01 1
2 1 02-01-01 1
3 2 01-01-01 0
关于python - 每组增量变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54912497/