You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

遍历Pandas指定列计算相关系数时变量未定义的解决方法

解决DataFrame列遍历计算相关系数的错误问题

你的问题根源很清晰:你把DataFrame的列名(比如passes)当成了独立的Python变量来使用,但实际上这些列名只是DataFrame中的字符串标签,Python找不到对应的变量定义,所以抛出了name 'passes' is not defined的错误。

这里有两种简便的方法来实现你想要的列遍历分析:

方法1:修正循环逻辑(使用字符串列名)

把列名改成字符串形式放入列表,然后通过索引访问(players[stats])来获取对应的列,而不是用点语法(players.stats,点语法仅适用于列名符合Python变量命名规则的场景,循环时用索引更可靠):

import numpy as np
import pandas as pd

# 假设你的players DataFrame已经存在
target_columns = ['passes', 'tackles', 'shots', 'saves']
for col in target_columns:
    # 计算当前列与minutes列的相关系数
    corr_coef = np.corrcoef(players['minutes'], players[col])[1, 0]
    print(f"{col} 与 minutes 的相关系数: {corr_coef:.4f}")

方法2:用Pandas原生函数更高效处理

如果你不想写循环,可以用Pandas的corrwith()函数,一次性计算所有目标列与minutes列的相关系数,代码更简洁且性能更好:

# 直接获取所有目标列与minutes的相关系数
correlation_results = players[['passes', 'tackles', 'shots', 'saves']].corrwith(players['minutes'])
print(correlation_results)

这个方法会返回一个Pandas Series,索引是目标列名,值是对应的相关系数,非常方便后续的分析或可视化。

内容的提问来源于stack exchange,提问作者Joseph Mann

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 07:12:28