Pandas DataFrame索引被占用时如何添加逐行递增的新列
实现方案
你可以直接基于DataFrame的行长度生成递增序列,该方法完全不依赖现有索引,仅按当前行顺序生成值:
方案1:内置range实现(最简洁,适合中小规模数据)
如果你需要从0开始递增(首行值为0,末行值为总行数-1):
df['new_column'] = range(len(df))
如果你需要符合举例中「第4行值为4」的从1开始递增的需求(首行值为1,末行值等于总行数):
df['new_column'] = range(1, len(df)+1)
方案2:numpy实现(效率更高,适合百万行以上的大规模数据)
import numpy as np # 从0开始 df['new_column'] = np.arange(len(df)) # 从1开始可调整为 # df['new_column'] = np.arange(1, len(df)+1)
方案3:不修改原数据生成新DataFrame
如果不想改动原DataFrame,可以用assign方法生成新对象:
new_df = df.assign(new_column = range(1, len(df)+1))
内容的提问来源于stack exchange,提问作者maki
相关产品推荐
相关产品推荐

