我正在尝试计算少量移位序列(不同的滞后和超前)与其他变量之间的相关性。但是,当我运行一个for循环时,该循环从一个数据帧中选择该列,并找到其与另一个数据帧中所有序列的相关性,然后继续到下一个列,以查找与第二个数据帧的相关性,我收到重复的值。
Note: 1st dataframe==df_list, 2nd dataframe==df_name, 3rd dataframe==df_corr
我首先通过获取要与数据帧(df_name)中所选变量回归的数据帧(df_list)中所有变量的相关性,创建了列和行长相等的矩阵。然后,我将第三个数据帧设置为该大小矩阵,以便行索引可以具有与所选序列进行回归时对应的名称。启用我选择的变量和列之间的操作,以使索引大小相同。在创建了一组列及其名称之后,我重置了两个数据帧的索引,这两个数据帧的序列相互关联。然后,我运行双循环,希望第二个数据帧中的列数(生成的名称)增加到第三个数据帧中。
“”“结果是我的第一个数据帧的序列彼此之间的相关性以及从我的第二个数据帧生成名称的列的数量仅在我希望它们具有与您期望的值不同时才具有相同的值遍历其列下的每一行,因为看来我正在使用新生成的序列计算第一个数据帧中唯一变量与不同变量之间的相关性。“”“
df_list=pd.concat([df_list,f_df],axis=1)
df_list=df_list[df_list.columns.drop(list(df_list.filter(regex="conv50to100dcalls")))]
df_list=df_list.reset_index()
col_name=['VIX','chg_VIX','SPY','chg_SPY']
shift_levels=[2,1,-1,-2]
df_name=pd.DataFrame()
df_corr=df_list.corr()
for i in col_name:
for k in shift_levels:
df_name[f'{i}_shift_level_{k}']= df_list[f'{i}'].shift(k)
df_name=df_name.dropna()
df_name=df_name.reset_index()
df_name=df_name[2:]
df_list=df_list.dropna()
for k in df_name:
for l in df_list:
df_corr[f'{k}_corr']=df_name[f'{k}'].corr(df_list[f'{l}'])`