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

如何缩放时间序列B以匹配A的累积涨跌幅并保留A原始值

时间序列B的缩放计算方案
  • 核心思路:将B的累积百分比变化趋势,线性映射到A的数值区间内,同时可对齐初始值,确保保留A原始值的前提下,B的变化趋势与df.B.pct_change().fillna(0).cumsum()完全一致,且数值范围与A匹配。

具体步骤及代码实现:

  1. 计算B的累积百分比变化序列(这是需要保留的核心趋势):
import pandas as pd

df = pd.DataFrame({
    'A': [1, 3, 2, 5, 2, 8, 3],
    'B': [10, 33, 22, 39, 30, 66, 34],
})

# 计算B的累积百分比变化
cum_pct_B = df['B'].pct_change().fillna(0).cumsum()
  1. 获取A的数值范围,确定缩放目标区间:
A_min = df['A'].min()
A_max = df['A'].max()
  1. 将B的累积百分比变化序列线性缩放到A的数值区间:
# 获取B累积百分比变化的自身范围
cpB_min = cum_pct_B.min()
cpB_max = cum_pct_B.max()

# 线性缩放公式
B_scaled = A_min + (cum_pct_B - cpB_min) * (A_max - A_min) / (cpB_max - cpB_min)
  1. 可选:对齐初始值,让缩放后的B与A的起点完全一致:
offset = df['A'].iloc[0] - B_scaled.iloc[0]
B_scaled = B_scaled + offset

验证:此时df['A']保留原始数值,B_scaled的走势与B的累积百分比变化完全一致,且数值范围与A高度匹配,满足同维度对比需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 16:52:52