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

Creating new df columns for each iteration of "for" loop

我正在尝试计算 4 个不同日期的标准普尔行业 diff_chg(在 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 列,每一列都有给定时间段内每个扇区的 returns (-30、-91、-182、-365。)。

截至目前,当我 运行 这段代码时,它 return 是 diff_df 中所有 4 个周期的 return 的总和。我希望它为每个时期在 df 中创建一个新列。

我的代码returns:

XLK     1.859907
XLI     1.477272
XLF     1.603589
XLE     1.415377
XLB     1.526237

但我想要 return:

        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

尝试这样的事情:

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