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

如何快速找出DataFrame中与Price变量相关性最高的两个变量?

解决方法

一、直接通过数值筛选找出目标变量

不用依赖热力图,直接从相关矩阵中提取Price列的相关性数据,排序后即可快速定位相关性最高的两个变量:

import pandas as pd

# 计算所有变量的相关矩阵
corr_matrix = df_csv.corr()

# 提取Price与其他变量的相关性,排除自身(相关系数为1),按相关性绝对值降序排序
price_correlations = corr_matrix['Price'].drop('Price').abs().sort_values(ascending=False)

# 获取相关性最高的两个变量
top_two = price_correlations.head(2)

print("与Price相关性最高的两个变量:")
print(top_two)

注:用abs()是因为正负相关仅代表方向,绝对值大小才代表相关性的强度,若你只关注正相关,去掉abs()即可。

二、优化热力图,聚焦Price相关部分

如果仍想通过可视化查看,可对热力图做针对性优化,避免信息密集:

1. 仅绘制Price与其他变量的相关性热力图

只展示Price列的相关数据,排序后更直观:

import seaborn as sns
import matplotlib.pyplot as plt

# 提取Price相关数据并排序
price_corr_df = corr_matrix[['Price']].drop('Price').sort_values(by='Price', ascending=False)

# 设置画布尺寸,适配23个变量
plt.figure(figsize=(8, 12))
# 绘制热力图,保留标注并设置格式
sns.heatmap(price_corr_df, annot=True, cmap='coolwarm', fmt='.2f')
plt.title('Variables Correlated with Price')
plt.show()

2. 优化全量热力图的可读性

若需要查看所有变量的相关性,可通过调整参数提升清晰度:

import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt

plt.figure(figsize=(16, 16))  # 增大画布
# 只显示下三角(避免重复信息),缩小标注字体
sns.heatmap(corr_matrix, annot=True, mask=np.triu(np.ones_like(corr_matrix, dtype=bool)),
            annot_kws={"size": 8}, cmap='coolwarm', fmt='.2f')
plt.show()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 01:35:35