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

如何合并匹配与未匹配质量值X的行列,取最高强度Y并为未匹配值补零

两组X-Y质量-强度对的合并实现方案

你需要先拆分两组独立的X-Y数据对分别处理,再按X的全量值对齐补0即可,以下提供两种常用实现方式:

方法1:Python Pandas实现(适合大批量数据)

核心逻辑是分别对两组数据做X分组取Y最大值,再按X的并集对齐补0,示例代码如下:

import pandas as pd

# 1. 读取原始数据,空值用NaN填充,也支持从剪贴板/Excel读取
df = pd.read_csv("你的原始数据文件路径.csv")

# 2. 拆分两组X-Y对,分别按X分组取Y的最大值,删除空行
group1 = df[['X1', 'Y2']].dropna().groupby('X1', as_index=False)['Y2'].max()
group2 = df[['X3', 'Y4']].dropna().groupby('X3', as_index=False)['Y4'].max()

# 3. 取所有X的并集作为基准列,按从小到大排序
all_x = pd.DataFrame({'X': pd.concat([group1['X1'], group2['X3']]).unique()}).sort_values('X').reset_index(drop=True)

# 4. 对齐两组数据,缺失的Y值统一补0
result = all_x.merge(group1, left_on='X', right_on='X1', how='left')\
              .merge(group2, left_on='X', right_on='X3', how='left')\
              .fillna(0)[['X', 'Y2', 'X', 'Y4']]
result.columns = ['X1', 'Y2', 'X3', 'Y4'] # 重命名为要求的列名

# 输出结果,需要保留小数可加result = result.round(2)
print(result)
# 导出到CSV:result.to_csv("合并结果.csv", index=False)

方法2:Excel实现(适合小批量数据)

  • 先把第一组(X1,Y2)、第二组(X3,Y4)分别复制到两个独立的区域,删掉空行
  • 分别对两组做数据透视表:行字段选X列,值字段选Y列,值汇总方式选最大值
  • 把两个透视表的X值复制到新列,去重后从小到大排序,得到全量X基准列
  • 用VLOOKUP函数分别匹配两组的最大Y值,匹配不到的用IFERROR返回0:
    第一组Y列公式:=IFERROR(VLOOKUP(基准X单元格, 第一组透视表区域, 2, 0), 0)
    第二组Y列公式:=IFERROR(VLOOKUP(基准X单元格, 第二组透视表区域, 2, 0), 0)
  • 把基准X列复制一份作为第二组的X列,四列组合就是你需要的结果。

内容的提问来源于stack exchange,提问作者Md. Nure Alam

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 16:36:08