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

如何基于数据表的特定列对其余多列数据进行对比

以speed为基准比对A/B/C列的实现方案

核心逻辑:以speed列为基准对齐数据,从分组分布特征、字段相关性、单样本偏差三个维度完成A、B、C三个字段的比对分析,以下是不同常用分析工具的具体实现代码:

Python(Pandas)实现

这是结构化数据离线分析最常用的方案,直接按步骤运行代码即可:

  1. 加载数据(示例中直接构造样例表,实际使用时替换为你的文件读入代码即可)
import pandas as pd

# 替换为 pd.read_csv("你的文件路径") 或 pd.read_excel("你的文件路径") 读入真实数据
x2 = pd.DataFrame({
    'A': [5, 2, 6],
    'B': [4, 4, 2],
    'C': [5, 2, 7],
    'speed': [5, 2, 2]
})
  1. 按speed值分组,统计同speed水平下A/B/C的分布特征,快速看三个字段的整体差异
# 计算同speed下三个字段的均值、中位数、标准差、极值
group_stat = x2.groupby('speed')[['A', 'B', 'C']].agg(
    ['mean', 'median', 'std', 'min', 'max']
)
print(group_stat)

以你提供的示例数据为例,speed=2的分组中,A的均值为4、B的均值为3、C的均值为4.5,可以直观看到相同速度下三个字段的平均水平差异。
3. 计算A/B/C和speed的相关系数,判断三个字段和基准列的关联紧密程度

corr_with_speed = x2[['A', 'B', 'C', 'speed']].corr()['speed'].drop('speed')
print(corr_with_speed)

返回结果越接近1代表和speed的正相关性越强,越接近-1代表负相关性越强,接近0则无线性关联。
4. 计算单条样本下A/B/C和speed的绝对偏差,定位单条数据的差异

# 新增偏差字段
x2[['A_diff', 'B_diff', 'C_diff']] = x2.apply(
    lambda row: [abs(row['A']-row['speed']), abs(row['B']-row['speed']), abs(row['C']-row['speed'])],
    axis=1, result_type='expand'
)
print(x2)

比如示例中第一行数据speed=5,A、C和speed的偏差为0,B的偏差为1,可直接判断单样本下哪个字段和基准值更匹配。

SQL实现

如果数据存在数据库中,不需要导出,直接写SQL即可完成计算:

  1. 分组统计同speed下三列的聚合特征
SELECT
    speed,
    AVG(A) AS avg_A, AVG(B) AS avg_B, AVG(C) AS avg_C,
    STDDEV(A) AS std_A, STDDEV(B) AS std_B, STDDEV(C) AS std_C,
    MIN(A) AS min_A, MIN(B) AS min_B, MIN(C) AS min_C,
    MAX(A) AS max_A, MAX(B) AS max_B, MAX(C) AS max_C
FROM x2
GROUP BY speed
ORDER BY speed;
  1. 计算单样本和speed的偏差
SELECT
    A, B, C, speed,
    ABS(A - speed) AS A_diff,
    ABS(B - speed) AS B_diff,
    ABS(C - speed) AS C_diff
FROM x2;

R实现

library(dplyr)

# 替换为read.csv/ read_excel读入真实数据
x2 <- data.frame(
  A = c(5,2,6),
  B = c(4,4,2),
  C = c(5,2,7),
  speed = c(5,2,2)
)

# 分组统计
group_stat <- x2 %>%
  group_by(speed) %>%
  summarise(
    across(c(A,B,C), list(mean = mean, median = median, sd = sd, min = min, max = max))
  )

# 计算单样本偏差
x2 <- x2 %>%
  mutate(
    A_diff = abs(A - speed),
    B_diff = abs(B - speed),
    C_diff = abs(C - speed)
  )

如果需要做更深度的差异分析(比如组内值的显著性差异检验、分布一致性校验),可以基于分组后的样本,对同speed组内的A、B、C值做配对t检验、KS检验即可。

内容的提问来源于stack exchange,提问作者ِAseel Mohammed

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 06:03:12