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

Pandas:时间序列中按分组创建以100为基期的索引值

Pandas 计算股价基准指数实现方案

方案1:固定取2021-01-01价格为基准(最稳妥,不受数据排序影响)

直接提取指定基准日的股价生成映射关系,逐行计算指数值:

# 提取2021-01-01的所有股票基准价,生成{股票代码:基准价}的映射字典
base_price_map = data[data['Date'] == '2021-01-01'].set_index('Share')['Share_price'].to_dict()

# 映射每行对应的基准价,计算指数值
data['price_index'] = data['Share_price'] / data['Share'].map(base_price_map) * 100

方案2:按分组取最早日期价格为基准(适配基准日不固定的场景)

如果你的基准规则是每个股票自身的最早交易日为基期,可以先排序再分组计算:

# 先按股票代码、日期升序排序,保证每个分组下最早的日期排在第一位
data = data.sort_values(by=['Share', 'Date']).reset_index(drop=True)

# 按股票分组取每组第一个价格作为基准,计算指数
data['price_index'] = data['Share_price'] / data.groupby('Share')['Share_price'].transform('first') * 100

结果验证

以你提供的样例数据为例,计算后得到的price_index结果如下:

DateShareShare_priceprice_index
2021-01-01 00:00:00nflx534100.00
2021-01-01 00:00:00aapl126100.00
2021-01-01 00:00:00amzn3270100.00
2021-02-01 00:00:00nflx590~110.49
2021-02-01 00:00:00aapl172~136.51
2021-02-01 00:00:00amzn3059~93.55
2021-03-01 00:00:00nflx552~103.37
2021-03-01 00:00:00aapl160~126.98
2021-03-01 00:00:00amzn3462~105.87

注意:如果存在股票未在2021-01-01上市的情况,对应行的price_index会返回NaN,可根据需求过滤处理。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 15:15:05