如何基于IDname和Date两列匹配合并两个DataFrame
实现方法
使用Python pandas库的merge方法即可满足双列匹配合并需求,代码如下:
import pandas as pd # 按IDname、Date两列同时匹配合并 df3 = pd.merge( left=df2, right=df1, on=['IDname', 'Date'], how='inner' ) # 如需得到示例中按IDname升序、日期升序排列的结果,补充排序代码即可 df3 = df3.sort_values(by=['IDname', 'Date'], ignore_index=True)
参数说明
on=['IDname', 'Date']:指定合并的匹配依据为这两列,只有两行的两个字段值完全一致时才会关联,完全符合要求的匹配规则how='inner':采用内连接逻辑,仅保留两个DataFrame中都存在的匹配组合。示例数据中两个表的IDname+Date组合完全重合,换成how='left'(以df2为基准)、how='right'(以df1为基准)结果一致,若实际数据存在某张表独有的组合,可以按需调整连接方式。
注意:如果Date字段存储为字符串格式,需要确保两个表的日期格式完全统一(比如不存在
1/20/19和01/20/19的格式差异),否则会出现匹配失败的情况。
内容的提问来源于stack exchange,提问作者Evan
相关产品推荐
相关产品推荐

