[英]Python - Assign a variable in lambda apply function to calculate correlation
我有一个数据框,它的列大小有可能呈指数增长。 我正在尝试多次计算两列之间的相关性。 相关性计算的一部分是随着列数的增加。 我正在 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'})
蒂姆·罗伯茨在第一条评论中回答了这个问题。 这是 . 符号的简单更改。 到 []。 谢谢蒂姆!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.