为“for”循环的每次迭代创建新的df列

2024-09-27 07:22:37 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图计算4个不同日期的标普板块的差异变化(在start_return中给出):

start_return = [-30,-91,-182,-365]
for date in start_return:
    diff_chg = closingprices[-1].divide(closingprices[date]) 
    for i in sectors:                                  #Sectors is XLK, XLY , etc                                                          
        diff_chg[i] = diff_chg[sectordict[i]].mean()    #finds the % chg of all sectors
        diff_df = diff_chg.to_frame

我的预期输出是在df中有4列,每个列都有给定时期内每个扇区的返回值(-30、-91、-182、-365.)。在

到现在为止,当我运行这段代码时,它返回diff_df中所有4个周期的返回值之和。我希望它为每个时期在df中创建一个新的专栏。在

我的代码返回:

^{pr2}$

但我希望它能回来:

        1mo (-30)        3mo (-61)         6mo (-182)         1yr (-365
XLK     1.086547         values here       etc               etc
XLI     1.0334
XLF     1.07342
XLE     .97829
XLB     1.0281

Tags: 代码indffordatereturnetcdiff
1条回答
网友
1楼 · 发布于 2024-09-27 07:22:37

试试这样的方法:

start_return = [-30,-91,-182,-365]
diff_chg = pd.DataFrame()
for date in start_return:
    diff_chg[date] = closingprices[-1].divide(closingprices[date])

它的作用是将每个date in start_return的列添加到开始创建的单个DataFrame中。在

相关问题 更多 >

    热门问题