python - 每组增量变量

标签 python pandas dataframe group-by

我有以下数据:

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

有没有一种聪明的方法可以很快做到这一点? (请注意,这只是为了说明,实际数据足够大。)

最佳答案

您可以将 groupbypd.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/

相关文章:

python - 如何按列对 pandas 中的数据框进行分组并获取 Json 数组中的所有其他列数据?

python - 为什么这是类型错误而不是语法错误

python - 解析以文本形式存储的数字,其中逗号为小数,点为千位

python - Pandas:处理具有多种数据类型的列

python - 数据框:coll 中数组的 get_dummies

python - 如何在python中的csv文件中编写列表列表

python - 如何将 DataFrame 的列名从字符串转换为整数

python - Hue 和共享 x 轴不起作用 Seaborn 构面网格

python - seaborn:因子图中的单独组

python - 在 python 中比较数据框中的两行时查找公共(public)列