Python中基于其他列的数值切片创建新列的实现方法
实现方案
核心逻辑是对A列做负向偏移(向上偏移),偏移量由你要取的起始位置决定:如果要从A列的第k个自然数位置开始取值,偏移量设为-(k-1)即可,你示例里k=4,对应偏移量为-3。
Pandas 实现
直接调用Series的shift()方法即可:
import pandas as pd # 示例数据构造 df = pd.DataFrame({'A': [73, 90, 38, 290, 9, 38, 29]}) # 从A列第4个值开始取,设置偏移量 offset = 3 df['B'] = df['A'].shift(-offset)
运行后输出结果和你给出的示例完全匹配:
A B 0 73 290.0 1 90 9.0 2 38 38.0 3 290 29.0 4 9 NaN 5 38 NaN 6 29 NaN
- 偏移后末尾自动填充的NaN可以按需用
df.dropna()删除空行,或者df['B'].fillna(自定义值)替换内容
SQL 实现
用窗口函数LEAD()实现同等效果,假设你的表名为t,排序字段为index:
SELECT index, A, LEAD(A, 3) OVER (ORDER BY index) AS B FROM t
内容的提问来源于stack exchange,提问作者vivi
相关产品推荐
相关产品推荐

