按REGION和DATE匹配合并pandas数据框并新增计算字段的方法
pandas双表匹配填充及字段计算实现方案
- 核心逻辑:基于
REGION、DATE两个公共字段做关联匹配,将df1的TIME PER ID字段带入df2后,直接求和计算新增字段即可 - 注意:使用左连接可以保证df2的原有行数据全部保留,匹配不到的
TIME PER ID会返回空值,可根据业务需求额外补充空值填充逻辑
import pandas as pd # 核心实现代码 # 仅提取df1的关联字段和目标匹配字段,避免冗余字段带入结果 result = df2.merge(df1[['REGION', 'DATE', 'TIME PER ID']], on=['REGION', 'DATE'], how='left') # 新增TOTAL TIME字段 result['TOTAL TIME'] = result['TIME'] + result['TIME PER ID'] # 调整输出字段顺序,匹配要求的输出结构 result = result[['ID', 'REGION', 'DATE', 'TIME', 'TIME PER ID', 'TOTAL TIME']]
你可以用示例数据直接验证效果:
# 构造示例测试数据 df1 = pd.DataFrame([{ 'REGION': 'ABC', 'DATE': '2021-03-22', 'Count': 2, 'TIME PER ID': 44 }]) df2 = pd.DataFrame([ {'ID': 11, 'REGION': 'ABC', 'DATE': '2021-03-22', 'TIME': 198}, {'ID': 75, 'REGION': 'ABC', 'DATE': '2021-03-22', 'TIME': 250} ])
运行核心代码后输出结果如下:
| ID | REGION | DATE | TIME | TIME PER ID | TOTAL TIME |
|---|---|---|---|---|---|
| 11 | ABC | 2021-03-22 | 198 | 44 | 242 |
| 75 | ABC | 2021-03-22 | 250 | 44 | 294 |
内容的提问来源于stack exchange,提问作者Scope
相关产品推荐
相关产品推荐

