python - 遍历值和列名 - 将它们放在字典中
问题描述
大家好,我需要以下代码的帮助 抱歉,但我想我会改变这个问题 -
下面的代码有效,但我试图做的是让它更有效 -
import yfinance as yf
data = yf.download("SPY AAPL IOO IXJ", start="2015-01-01", end="2019-04-30")
data
df=data['Adj Close']
returns=data['Adj Close'].pct_change().dropna()
roll_profits = rolling_profits(returns, window).fillna(method='ffill')
list_dict=[]
for column in returns:
grit = grit_index(returns[column], minperiods)
ulcer=ulcer_index(returns[column], minperiods)
row = {'name' : column,
'score': grit[-1],
'ulcer' : ulcer[-1]
}
list_dict.append(row)
print(list_dict)
scoreboard = pd.DataFrame.from_dict(list_dict)
print(scoreboard)
笔记-
grit index
# Define a function 'grit_index'
def grit_index(returns, minperiods):
cum_rets = cumulative_returns(returns, minperiods).fillna(method='ffill')
peak_rets = cum_rets.cummax()
dd = np.log((cum_rets/peak_rets)) ** 2
ulcer = np.sqrt(dd.expanding(min_periods=minperiods).sum())
grit = cum_rets * ulcer ** -1
return grit
input:
AAPL IOO IXJ SPY
Date
2015-01-02 -0.009513 -0.002099 0.002712 -0.000535
2015-01-05 -0.028172 -0.022745 -0.005009 -0.018060
2015-01-06 0.000094 -0.008745 -0.004732 -0.009419
2015-01-07 0.014022 0.008551 0.016184 0.012461
2015-01-08 0.038423 0.019513 0.020904 0.017745
l
其中,returns 是以股票收益为列的 pandas 数据框。
我想知道是否有人有任何想法来改进上述代码
非常感谢,
安德鲁
解决方案
推荐阅读
- jekyll - 在 netlify cms 上添加铁饼评论系统和自定义主题
- c# - 使用“is”关键字时已定义局部变量 - 与语言参考不符
- git - 更改用户后无法推拉
- ios - 如何在 Swift(iOS) 中按月对 UITableView 数据进行分组?
- r - 如何合并多个数据框,添加新值并将 0 分配给缺失值
- python - 使用matplotlib从数据框中绘制向量?
- ios - 如何修复 iOS12 上的应用程序(使用 coredata)冻结问题
- django - Django 静态文件未加载,尽管视图源中显示了正确的链接
- java - JTextField 不能被引用
- java - 如何解决异常 BEGIN_OBJECT 但 STRING 在 android studio 中的第 1 行第 2 列路径 $?