python - 在 Python 中计算回报和波动率的更有效方法
问题描述
如果我在 CSV 中有多个时间序列并且想使用 Python 来计算收益和波动率,那么最有效的方法是什么?数据集将如下所示,不同的文件包含多个时间序列。
1)存储数据(即直接将整个表加载为数据框或将每个时间序列加载到字典中更有效(键是股票名称,值是价格)
2) 计算收益和波动率
我知道我可以使用 numpy 和 pandas 来执行以下操作:
xls = pd.ExcelFile(filepath) # load the file
df = xls.parse(xls.sheet_names[sheetNo]) # now the file content is in the dataframe
df[‘A_ret’] = np.log(df[‘A’] / df[‘A’].shift(1)) # 1day log return for time series A
df[‘A_volatility’] = pd.rolling_std(df[‘A_ret’],window=252) * np.sqrt(252) # 1y volatility for time series A
但由于我有很多列和很多文件要处理,我想知道是否有更好的方法。我读到 Python 可以编译部分代码以使用 Numba 使代码非常快。但是,如果我使用 for 循环不确定我是否可以在某些方面利用它来使代码更快地计算回报和波动率,那效果很好。
解决方案
推荐阅读
- mysql - 如果其他行包含带有 1 的 ID,是否可以在一列 ID 中搜索 1?
- python - 保存 CSV 文件,使其名称本身就是一个字符串
- python - Socket Server 拒绝多线程连接
- javascript - 如何检测元素可见性(z-index、固定、不透明度等)(Intersection Observer V2 替代方案)
- python-3.x - 将来自网络抓取的列表输出列表转换为数据框
- git - 已打开的新拉取请求
- amazon-web-services - Amazon AWS EC2 的实例没有互联网/错误配置?
- android - Android-GridView 中带有复选框的项目选择
- ios - 使用 NSPersistentCloudKitContainer 同步旧数据
- javascript - 计算由 javascript 代码添加的多个输入字段的值,并在 Javascript 中为每一行显示