如何在Python中修改DataFrame的Run_time列实现连续编号
将分段重复的Run_time列修改为连续递增编号
原始数据集
# 导入所需库 import pandas as pd # 创建数据集 data = {'team': ['A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A'], 'Run_time': [1, 2, 3, 4, 5, 1, 2, 3, 1, 2, 3, 4], 'Married': ['No', 'Yes', 'Yes', 'Yes', 'No', 'Yes', 'Yes', 'Yes', 'No', 'Yes', 'Yes', 'No'], 'Self_Employed': ['No', 'No', 'Yes', 'No', 'No', 'No', 'Yes', 'No', 'No', 'Yes', 'No', 'No'], 'LoanAmount': [123, 128, 66, 120, 141, 52,96,15,85,36,58,89], } # 转换为DataFrame df = pd.DataFrame(data) print("原始df = \n", df)
需求说明
当前Run_time列是分段重复从1开始的序列,需要将其修改为从1开始的全局连续递增编号(最终序列为[1,2,3,4,5,6,7,8,9,10,11,12])。
解决方案
方法1:直接生成连续序列赋值
利用Python内置range生成从1到DataFrame行数的连续序列,直接替换原列:
df['Run_time'] = range(1, len(df) + 1)
也可以用numpy的arange实现相同效果:
import numpy as np df['Run_time'] = np.arange(1, len(df) + 1)
方法2:利用索引重置生成编号
通过重置索引并调整起始值生成连续编号:
df['Run_time'] = df.reset_index(drop=True).index + 1
扩展:分组内连续递增(可选)
如果后续需要按team分组,每个组内生成从1开始的连续编号,可使用groupby结合cumcount:
df['Run_time'] = df.groupby('team').cumcount() + 1
验证结果
执行上述任意方法后,打印DataFrame即可看到修改后的效果:
print("修改后df = \n", df)
输出的Run_time列将是1到12的连续递增序列。
内容的提问来源于stack exchange,提问作者NN_Developer
相关产品推荐
相关产品推荐

