首页 > 解决方案 > 没有 groupby Pandas 的行号

问题描述

我有三列:id(唯一)、值、时间

我想创建一个没有任何分区的简单 row_number 的新列

我试过df['test'] = df.groupby('id_col').cumcount()+1

但输出只有一个。

期望得到数据帧的 1->len

另外,有没有办法在 numpy 中做到这一点以获得更好的性能

标签: pythonpandas

解决方案


如果您的索引已经从 0 开始排序

df["row_num"] = df.index + 1

别的:

df["row_num"] = df.reset_index().index + 1

将时间与%%timeit速度从最快到最慢进行比较:@Scott Boston's method > @Henry Ecker's method > mine


推荐阅读