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

如何计算DataFrame中相邻列的相关性并添加至DataFrame?

解决方案:计算相邻Token列的相关性并追加到DataFrame

直接上可运行的代码,结合你的示例数据,一步步实现需求:

1. 构造示例DataFrame

先还原你提供的输入数据:

import pandas as pd

data = {
    'article': ['article1', 'article2'],
    'token1': [0.00, 0.07],
    'token2': [0.04, 0.00],
    'token3': [0.03, 0.14],
    'token4': [0.00, 0.04],
    'token5': [0.10, 0.00]
}
df = pd.DataFrame(data)

2. 计算相邻Token列的相关性

遍历所有相邻的Token列对,计算它们的皮尔逊相关系数(默认方法,可按需调整),并构造相关性行:

# 提取所有Token列(排除第一列的article)
token_cols = df.columns[1:]

# 初始化相关性结果列表,最后一列设为NaN
corr_values = [None] * len(token_cols)
corr_values[-1] = float('nan')

# 遍历相邻列对计算相关性
for i in range(len(token_cols) - 1):
    col_left = token_cols[i]
    col_right = token_cols[i+1]
    # 计算皮尔逊相关系数,可替换method为'spearman'或'kendall'
    corr_coeff = df[col_left].corr(df[col_right])
    corr_values[i] = round(corr_coeff, 4)  # 保留4位小数,可自行调整

# 构造相关性行
corr_row = pd.DataFrame([['Corr'] + corr_values], columns=df.columns)

3. 将相关性行追加到原DataFrame

用pd.concat完成行的追加(替代已过时的df.append):

df = pd.concat([df, corr_row], ignore_index=True)

最终输出

运行后得到的结果和你预期的格式一致:

article  token1  token2  token3  token4  token5
0  article1    0.00    0.04    0.03    0.00    0.10
1  article2    0.07    0.00    0.14    0.04    0.00
2      Corr  -0.999    0.999   -0.999    -1.0     NaN

补充说明

  • 如果需要非皮尔逊的相关性,只需在corr()方法中指定method参数,比如df[col_left].corr(df[col_right], method='spearman')。
  • 小数位数可以通过调整round()的第二个参数控制,或者直接去掉round()保留原始精度。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.23 09:36:20