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

如何合并相同ID的重复行并将Participação值拆分为独立列

解决方法

1. Excel/Google Sheets 操作

合并计算法(快速高效)
  • 选中当前所有数据(包含表头)
  • Excel:点击「数据」选项卡→「合并计算」,函数选择「最大值」(或最小值,同一ID下仅一个非空值,会自动提取有效内容),引用区域选中数据范围,勾选「首行」「最左列」作为标签,确定后即可得到合并结果。
  • Google Sheets:插入数据透视表,行维度选ID,值维度分别添加Comunicante和Vítima,汇总方式选「唯一值」或「最大值」,之后调整列布局即可。
公式法(灵活可控)

在新表格中输入唯一ID值(如01、02),然后:

  • Comunicante列公式(Excel需按Ctrl+Shift+Enter作为数组公式,Google Sheets直接回车):
    =INDEX($D$2:$D$5,MATCH(1,($A$2:$A$5=F2)*($B$2:$B$5="Comunicante"),0))
    
  • Vítima列公式:
    =INDEX($D$2:$D$5,MATCH(1,($A$2:$A$5=F2)*($B$2:$B$5="Vitima"),0))
    

注:F2为新表格中ID所在单元格,需根据实际位置调整。

2. SQL 实现

如果数据存储在数据库中,用条件聚合分组完成转换:

SELECT 
  ID,
  MAX(CASE WHEN Participação = 'Comunicante' THEN Pessoa END) AS Comunicante,
  '' AS [空列],
  MAX(CASE WHEN Participação = 'Vitima' THEN Pessoa END) AS Vítima
FROM 你的表名
GROUP BY ID;

3. Python Pandas 处理

用透视表快速完成数据结构转换:

import pandas as pd

# 构造数据(实际场景可从CSV/Excel文件读取)
df = pd.DataFrame({
    'ID': ['01', '01', '02', '02'],
    'Participação': ['Comunicante', 'Vitima', 'Comunicante', 'Vitima'],
    'Pessoa': ['Lucas', 'Lucas', 'Rafa', 'Vitor']
})

# 透视转换
pivot_df = df.pivot(index='ID', columns='Participação', values='Pessoa').reset_index()

# 调整列名和添加空列
pivot_df.rename(columns={'Vitima': 'Vítima'}, inplace=True)
pivot_df[''] = ''

# 调整列顺序匹配目标结构
pivot_df = pivot_df[['ID', 'Comunicante', '', 'Vítima']]

print(pivot_df)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 07:47:35