如何合并两个数据集并对共享列frequency求和
合并数据集并按from/to分组求和frequency
原始数据集
第一个数据集:
| from | to | frequency |
|---|---|---|
| a | a | 2 |
| a | b | 3 |
第二个数据集:
| from | to | frequency |
|---|---|---|
| a | a | 3 |
| a | b | 4 |
期望结果
| from | to | frequency |
|---|---|---|
| a | a | 5 |
| a | b | 7 |
解决方案
1. Python Pandas 实现
import pandas as pd # 加载两个数据集(实际场景可通过read_csv/read_excel读取) df1 = pd.DataFrame({ 'from': ['a', 'a'], 'to': ['a', 'b'], 'frequency': [2, 3] }) df2 = pd.DataFrame({ 'from': ['a', 'a'], 'to': ['a', 'b'], 'frequency': [3, 4] }) # 合并后按from、to分组求和 result_df = pd.concat([df1, df2]).groupby(['from', 'to'], as_index=False)['frequency'].sum() print(result_df)
2. SQL 实现
假设两个数据表分别为table1和table2,执行以下查询:
SELECT `from`, `to`, SUM(frequency) AS frequency FROM ( SELECT `from`, `to`, frequency FROM table1 UNION ALL SELECT `from`, `to`, frequency FROM table2 ) AS combined_data GROUP BY `from`, `to`;
3. Excel 实现
- 将两个数据集放置在同一工作表的不同区域(如A1:C3和E1:G3)
- 选中空白区域,点击「插入」→「数据透视表」
- 将
from和to拖至「行」区域,frequency拖至「值」区域 - 右键点击值区域的
frequency,选择「值字段设置」,将计算类型改为「求和」
内容的提问来源于stack exchange,提问作者Antonio Alaia
相关产品推荐
相关产品推荐

