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

如何在Pandas DataFrame中扩大数值间的间距?

如何在Pandas DataFrame中扩大数值间的间距?

输入示例

先构造目标DataFrame:

import pandas as pd

df = pd.DataFrame({'A': [3,5,6,5,9]}, index=[1,2,3,5,6])

输入结构如下:

A
1  3
2  5
3  6
5  5
6  9

需求说明

生成新列B,规则为:

  • B的第一个元素与A的第一个元素相同
  • 后续每个B元素 = 前一个B元素 + (当前A元素 - 前一个A元素) × 放大倍数x(示例中x=2)

实现代码

x = 2  # 设定放大倍数

# 计算A列相邻元素的差值
diff_A = df['A'].diff()
# 计算B列的增量:差值乘以放大倍数
diff_B = diff_A * x
# 累加增量并加上初始值,得到B列
df['B'] = df['A'].iloc[0] + diff_B.cumsum().fillna(0)

输出结果

运行后得到的DataFrame:

A   B
1  3   3
2  5   7  # 3 + (5-3)*2 = 7
3  6   9  # 7 + (6-5)*2 = 9
5  5   7  # 9 + (5-6)*2 = 7
6  9  15  # 7 + (9-5)*2 = 15

逻辑解释

  1. diff()方法计算A列相邻元素的差值,第一个元素因无前置值,结果为NaN
  2. 将差值乘以放大倍数x,得到B列每个位置相对于前一个位置的增量
  3. cumsum()对增量进行累加,fillna(0)处理第一个元素的NaN,保证初始累加值为0
  4. 最后加上A列的第一个元素,得到最终的B列

内容的提问来源于stack exchange,提问作者Igor K.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 15:52:17