You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为Pandas DataFrame添加随node列重置的id列?

按分组重置ID列的Pandas实现

解决方案

使用Pandas的groupby()结合cumcount()方法,通过矢量化操作实现需求,完全符合Pandas最佳实践,无需循环。

步骤代码

  1. 读取原始数据(无表头时需指定列名)
import pandas as pd

# 读取数据,假设原始数据存为csv文件
df = pd.read_csv('data.csv', header=None, names=['node', 'value'])
  1. 添加分组重置的ID列
# 按node列分组,每组内从0开始顺序计数
df['id'] = df.groupby('node').cumcount()
  1. 调整列顺序至期望格式
# 将id列移至首位
df = df[['id', 'node', 'value']]

输出结果

执行上述代码后,DataFrame的输出与你期望的格式完全一致:

id    node  value
0   0  node1   0.858
1   1  node1   0.897
2   2  node1   0.954
3   0  node2   3.784
4   1  node2   7.640
5   2  node2  11.592

原理说明

  • groupby('node')将数据按node的取值分割为独立分组;
  • cumcount()为每个分组内的行分配从0开始的连续整数,自动在新分组开始时重置计数;
  • 整个操作是Pandas内置的矢量化运算,性能远优于循环遍历,同时代码简洁易维护。

内容的提问来源于stack exchange,提问作者fanbondi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 10:35:25