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

如何实现两个同结构DataFrame的逐列配对绘图及相关性计算?

更优实现方案:逐列配对绘图与相关系数计算

一、逐列配对散点图优化实现

无需合并为双层列头DataFrame,直接利用两个DataFrame列名完全一致的特性,循环列名即可快速绘制子图,代码更简洁直观:

import matplotlib.pyplot as plt

# 获取列名列表
cols = df_X.columns
# 创建对应数量的子图
fig, axes = plt.subplots(len(cols), 1, figsize=(6, 4 * len(cols)))

# 循环列名与子图,绘制散点图
for col, ax in zip(cols, axes):
    ax.scatter(df_X[col], df_Y[col])
    ax.set_title(f'{col}: X vs Y')
    ax.set_xlabel('X')
    ax.set_ylabel('Y')

# 自动调整子图间距
plt.tight_layout()
plt.show()

二、逐列相关系数简化计算

方法1:一行搞定的高效计算

使用pandas内置的corrwith()方法,直接计算两个DataFrame对应列的皮尔逊相关系数,无需手动循环:

import pandas as pd

# 计算对应列的相关系数
corr_results = df_X.corrwith(df_Y)
print(corr_results)

输出示例:

A    1.0
B    1.0
C    1.0
dtype: float64

方法2:自定义相关系数类型

如果需要使用斯皮尔曼(spearman)或肯德尔(kendall)相关系数,可循环列名自定义计算:

corr_dict = {}
for col in df_X.columns:
    # 替换method参数为'spearman'或'kendall'即可切换类型
    corr_dict[col] = df_X[col].corr(df_Y[col], method='pearson')

# 转换为Series格式,便于查看和后续处理
corr_series = pd.Series(corr_dict)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 15:06:39