首页 > 解决方案 > for 循环列表到数据框

问题描述

对于数据框,我有以下 for 循环

# this is my data 
df=yf.download('AAPL', period='max', interval='1d' )

vwap15 = []
for i in range(0,len(df)-1):
        if(i>=15):
            vwap15.append(sum(df["Close"][i-15:i]*df["Volume"][i-15:i])/sum(df["Volume"][i-15:i]))
        else:
            vwap15.append(None)

当我创建上面的 for 循环时,它生成了一个列表。

我实际上想将它作为一个数据框,我可以加入我的原始数据框 df

任何见解将不胜感激谢谢

标签: pythonpandas

解决方案


也许你的意思是(在循环之后):

df["vwap15"] = vwap15

请注意,您需要for像这样修复循环(否则长度将不匹配):

for i in range(len(df)):

也许您想看看当前可用的 Python 和 Pandas 技术分析指标包。

此外,在计算时间窗口内的指标时,尝试使用NaN而不是None考虑使用Pandas.rolling方法。


推荐阅读