Pandas如何按名称不同的日期列合并两个DataFrame?
报错原因
你导入df1时,原来的Index列已经被pandas默认识别为行索引,没有存放在列名列表中,所以调用set_index('Index')时会提示找不到该列。
解决步骤
- 先将df1的行索引转为普通列,并重命名为和df2一致的关联字段
Date:
# pandas 1.5.0及以上版本写法 df1 = df1.reset_index(names='Date') # 低版本兼容写法 # df1 = df1.reset_index().rename(columns={'index': 'Date'})
- 直接按
Date字段合并两个DataFrame即可:
# 按日期匹配合并,日期完全匹配用inner,需要保留两边所有日期可改为how='outer' df3 = df2.merge(df1, on='Date', how='inner')
运行后得到的df3就是你需要的结构。
内容的提问来源于stack exchange,提问作者heff
相关产品推荐
相关产品推荐

