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

如何在Pandas DataFrame中高效生成递增值新列(无需循环)

无需遍历的解决方案

当然可以不用遍历所有行,Pandas和NumPy的向量化操作完全能高效实现这个需求,而且性能比遍历好得多。以下是两种常用方法:

方法1:用NumPy生成精确序列

使用np.linspace()直接生成指定长度的等差序列,能避免浮点数累加的精度问题:

import pandas as pd
import numpy as np

# 假设你的现有DataFrame是df
df = pd.DataFrame(...)  # 替换成你的实际数据

# 生成首项-17.3、步长0.15、共26000个元素的序列
start_val = -17.3
step = 0.15
count = 26000
end_val = start_val + (count - 1) * step
new_col = np.linspace(start_val, end_val, count)

# 将序列作为新列加入DataFrame
df['new_column'] = new_col

linspace会直接根据起始值、结束值和元素个数生成均匀分布的序列,确保最终长度正好是26000,不会因为浮点数精度误差导致长度偏差。

方法2:利用行位置计算

如果你的DataFrame索引是从0开始的连续整数,或者不依赖现有索引,可以直接通过行位置计算:

# 生成从0到25999的位置序列,乘以步长再加起始值
df['new_column'] = -17.3 + np.arange(len(df)) * 0.15

这种方法更简洁,np.arange(len(df))会生成与DataFrame行数一致的整数序列,再通过向量化运算得到目标列,全程没有循环遍历。

这两种方法都是基于向量化运算,底层由NumPy优化,处理26000行数据的速度会比Python循环快几个数量级。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 21:06:06