Python -在lambda apply函数中分配一个变量来计算相关性



我有一个数据框架,它的列大小可能呈指数级增长。我试图多次计算两列之间的相关性。部分相关性计算是随着列数的增加而进行的。我正在创建相关性计算所需的列在for循环中,当我尝试计算相关性时,我得到一个错误说:

'DataFrame' object has no attribute 'col'

我已经尝试将新的列名分配给变量并将该变量放在lambda函数中,但这也不起作用。

如何更新代码的相关部分,以使用FOR循环中的新列?

下面是创建新列的for循环。Colname是所有列名的列表:

for col in colname:
df[col+'_RR'] = df['p_'+col] - df['r2500_ret']
df[col+'_sec_rr'] = df['ret'] - df[col+'_RR']

# Calculate Correlation
dfcorr = df.groupby('symbol').apply(lambda v: v.col+'_sec_rr'.corr(v.col+'_RR')).to_frame().rename(columns={0:'jets_correlation'})

Tim Roberts在第一条评论中回答了这个问题。这只是符号上的一个简单改变。[]。感谢蒂姆!

最新更新