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

为何DataFrame相关性呈现该结果?如何筛选匹配目标列的最优列?

筛选DataFrame中与目标列匹配度最高的列及相关性结果疑问解答

嘿,我来帮你搞定这个问题!你现在手里有个以列作为测试项的DataFrame,想从中挑出和目标列匹配度最高的列,同时还对当前算出的相关性结果有点摸不着头脑,对吧?

你的代码与数据片段

先把你给出的代码和数据整理成清晰的可参考片段:

import pandas as pd 
# 测试过pandas 0.22和pandas 0.20版本 
data = {
    0.1: {10000.0: 1.1417023723316702, 20000.0: 1.675669860738065, 30000.0: 2.1391047345794565, 40000.0: 2.588884897140648}, 
    0.3: {10000.0: 3.4251071169950102, 20000.0: 5.027009582214195, 30000.0: 6.4173142037383695, 40000.0: 7.766654691421943}, 
    0.5: {10000.0: 5.708511861658351, 20000.0: 8.378349303690324, ...}
}
df = pd.DataFrame(data)

关于相关性结果的疑问解析

你觉得相关性结果不符合预期?大概率是这几个原因在搞怪:

  • 皮尔逊相关的局限性:pandas默认计算的是皮尔逊相关系数,它只衡量线性相关程度。如果你的测试列和目标列是非线性关系(比如二次、指数关系),这个系数就没法准确反映真实的匹配度,甚至会给出看似反常的结果。
  • 数据缩放的影响:从你给出的数据看,不同列的数值跨度差得挺多(比如0.1列在1-2.6之间,0.3列在3-7.8之间),如果目标列的数值范围和某测试列差距很大,可能会让相关性结果偏离你的预期——不过从现有数据看,各列和索引(10000、20000这些)的线性关系极强,要是你把索引当目标列,相关性应该接近1才对,是不是你的目标列是其他数据呀?
  • 缺失值的干扰:你的0.5列数据有省略(...),如果存在缺失值,pandas计算相关性时会自动删掉缺失值所在的行,样本量变了,结果自然也会受影响。
  • 换个相关方法试试:如果数据是非线性的,换成斯皮尔曼等级相关(method='spearman')或者肯德尔tau相关(method='kendall'),这俩对非线性关系的捕捉更靠谱。

筛选与目标列匹配度最高的列的方法

假设你的目标列叫target_col,按下面的步骤来就行:

  1. 计算所有测试列与目标列的相关性
# 要是目标列不在df里,你可以单独传入目标列的Series数据
corr_scores = df.corrwith(df['target_col'])  # 默认皮尔逊,想换方法加参数:method='spearman'
  1. 找出匹配度最高的列
# 取绝对值最大的,毕竟负相关也是一种强关联(如果你的场景允许的话)
top_matching_col = corr_scores.abs().idxmax()
top_corr_value = corr_scores[top_matching_col]

print(f"和目标列匹配度最高的列是: {top_matching_col},相关性为: {top_corr_value:.4f}")
  1. 用其他指标衡量匹配度(可选)
    要是线性相关性不够准确,还可以用均方误差(MSE)来衡量数值差异——MSE越小,说明两列数据越接近:
from sklearn.metrics import mean_squared_error

mse_scores = {}
for col in df.columns:
    if col != 'target_col':
        mse_scores[col] = mean_squared_error(df['target_col'], df[col])

# 找MSE最小的列
top_matching_col_mse = min(mse_scores, key=mse_scores.get)
print(f"MSE最小的匹配列是: {top_matching_col_mse},MSE值为: {mse_scores[top_matching_col_mse]:.4f}")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 04:16:43