如何合并相同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
相关产品推荐
相关产品推荐

