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

Pandas按股票分组计算固定基准日期与其他交易日的股价差值方法

Pandas计算单只股票与指定基准日股价差值实现方法

实现逻辑

  • 首先将日期列转为datetime格式,避免日期匹配出错
  • 定义你需要的基准日期,注意匹配你输入的日期格式
  • 提取每只股票在基准日的收盘价作为参照值
  • 逐行计算每个交易日收盘价与对应股票基准收盘价的差值

完整可运行代码

import pandas as pd

# 读取数据
df = pd.read_csv("my_stocks.csv")
# 转换日期列为datetime格式
df["Date"] = pd.to_datetime(df["Date"])

# 定义基准日期,如果是你说的"23.05.2021"格式,就用下面这行注释的代码
# benchmark_date = pd.to_datetime("23.05.2021", format="%d.%m.%Y")
benchmark_date = pd.to_datetime("2021-06-23") # 示例用你示例数据中存在的日期

# 方法1:先构造基准价映射表,逻辑最直观
benchmark_close_map = df[df["Date"] == benchmark_date].set_index("Stock")["Close"].to_dict()
df["difference"] = df["Close"] - df["Stock"].map(benchmark_close_map)

# 方法2:用groupby.transform实现,适合不想单独构造映射表的场景
# df["difference"] = df.groupby("Stock")["Close"].transform(
#     lambda x: x - x.loc[df["Date"] == benchmark_date].iloc[0]
# )

print(df)

补充说明

  • 如果你要计算开盘价、最高价等其他价格的差值,把代码里所有的Close替换成对应的列名即可
  • 如果基准日某只股票没有交易数据,差值会自动填充为NaN,你可以根据需求后续用fillna处理缺失值

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.13 09:45:02