python - 没有 groupby Pandas 的行号
问题描述
我有三列:id(唯一)、值、时间
我想创建一个没有任何分区的简单 row_number 的新列
我试过:df['test'] = df.groupby('id_col').cumcount()+1
但输出只有一个。
期望得到数据帧的 1->len
另外,有没有办法在 numpy 中做到这一点以获得更好的性能
解决方案
如果您的索引已经从 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
推荐阅读
- python - 检查时间间隔内所选时间的输入
- serial-port - Pyvmomi 获取端口组的 CRUD 操作
- google-chrome-extension - 注入 Chrome 扩展内容脚本的最低权限
- python-3.x - Python Panda Dataframe 替换列中的值
- javascript - 不和谐.js | 如何制作在用户加入时发送用户信息的代码?
- cmake - 隐藏
和 Qt Creator 中的 CMake 模块 - javascript - 从原始 json 获取不存在的数据并将其附加到表中
- css - 在 SASS 中为 3 个嵌套块使用根类名
- datetime - TAI 时间可以用 ISO 8601 表示吗?如果可以,如何表示?
- maui - http 链接可以在 MAUI Windows 应用程序中打开特定窗口吗?