如何基于日期列和Id列合并两个Pandas DataFrame
你可以直接使用Pandas内置的merge方法实现双列匹配合并,具体操作如下:
代码实现
import pandas as pd # 双列匹配合并,保留df的全部行 merged_result = pd.merge( left=df, right=df1, # 指定左表匹配键:日期列arrival + ID列input_fid left_on=["arrival", "input_fid"], # 指定右表匹配键:日期列date + ID列input_fid right_on=["date", "input_fid"], how="left" ) # 清理冗余列,只保留需要的字段 merged_result = merged_result[["arrival", "input_fid", "prcp"]]
说明
- 匹配前建议先确认两个表的日期列格式完全一致(比如都是
%d-%m-%Y格式的字符串,或者统一转成datetime类型),避免格式差异导致匹配失败。 - 你给出的预期结果中
arrival=02-01-2021、input_fid=479对应的prcp值属于笔误,按照你提供的df1原始数据,正确匹配结果应为0.44,上述代码会自动按原始数据正确匹配。
内容的提问来源于stack exchange,提问作者Aravinth
相关产品推荐
相关产品推荐

