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

Python函数实现:传入returns后缀数字输出收益率均值

需求说明

我已经通过yfinance API从Yahoo Finance提取了多只股票数据,使用的代码如下:

prices0= yf.download(' '.join(sample.iloc[0]),start,end)['Adj Close']
returns0= prices0.pct_change()[1:]

prices1= yf.download(' '.join(sample.iloc[1]),start,end)['Adj Close']
returns1= prices1.pct_change()[1:]

prices2= yf.download(' '.join(sample.iloc[2]),start,end)['Adj Close'] 
returns2= prices2.pct_change()[1:]

其中,sample是包含3只股票名称的DataFrame,对应一个3股投资组合。

需要定义一个函数,仅接收上述returns变量名称末尾的数字,输出对应收益率的均值,核心是通过变量名后缀数字识别变量并执行计算。


解决方案

可以利用Python的globals()函数获取全局命名空间中的变量,通过传入的数字拼接目标变量名,进而计算对应收益率的均值:

def get_return_mean(num):
    var_name = f"returns{num}"
    returns_data = globals().get(var_name)
    if returns_data is None:
        raise ValueError(f"找不到名为 {var_name} 的收益率变量")
    return returns_data.mean()

使用示例

# 获取returns0的均值
print(get_return_mean(0))
# 获取returns1的均值
print(get_return_mean(1))
# 获取returns2的均值
print(get_return_mean(2))

注意点

  • globals()会返回当前全局作用域的变量字典,通过拼接的字符串键就能取出对应的收益率数据。
  • 加入了变量存在性校验,避免传入无效数字时触发无意义的错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 05:25:45