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

如何在Pandas DataFrame两列间计算逐行相关系数并生成新列

注:皮尔逊相关系数需要至少2组样本才能计算出有统计意义的结果,单独每行的两个数值不存在相关系数的概念,以下是两种匹配你需求的常见实现方案:

方案1:滚动窗口逐行计算相关系数

如果你需要的是「以当前行为末尾,取连续N行数据计算相关系数」,可以用pandas内置的rolling方法实现:

import pandas as pd

# 你的示例数据
df = pd.DataFrame({'Bananas': [11, 2, 0.5], 'Weight': [84, 81, 78]})

# 窗口大小设为2,即每次取当前行+上一行共2组数据计算相关系数
window_size = 2
df['rolling_corr'] = df['Bananas'].rolling(window_size).corr(df['Weight'])

计算后新列rolling_corr会存储每行对应的相关系数,前window_size-1行因为样本量不足会返回NaN。

方案2:逐行计算两列的数值关联度量

如果你只是需要得到每行两个数值的对应关联值(而非统计意义上的相关系数),直接对两列做逐行运算即可:

# 示例1:计算每行Bananas与Weight的比值
df['value_ratio'] = df['Bananas'] / df['Weight']

# 示例2:计算每行两个值的绝对差值
df['abs_diff'] = abs(df['Bananas'] - df['Weight'])

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 09:24:04