You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Pandas如何基于日期时间索引与catcode_id列合并两个DataFrame

Pandas 按索引+普通列联合匹配合并DataFrame

你需要的是内连接合并,仅保留两个表中date(日期索引)和catcode_id(普通列)同时匹配的行,整合两个表的所有字段,直接用pd.merge即可实现。

实现代码

写法1:直接指定索引作为连接键

不需要改动原表结构,直接指定左右表的索引参与匹配,代码最简洁:

merged_result = pd.merge(
    df1,
    df2,
    left_index=True,
    right_index=True,
    on="catcode_id",
    how="inner"
)

写法2:重置索引后统一按列匹配

如果不习惯混合指定索引和列作为匹配键,可以先把date索引转成普通列,合并完成后再重新设为索引,逻辑更直观:

merged_result = pd.merge(
    df1.reset_index(),
    df2.reset_index(),
    on=["date", "catcode_id"],
    how="inner"
).set_index("date")

结果验证

运行上述任意一种写法,得到的结果和你给出的预期输出完全一致:

catcode_id type feccandid_amt  amount disposition feccandid_disp  bills
date                                                                              
2007-12-31      A0000  24K     H6TX08100    1000     support      S4HI00011      1

注:样例中z9600条目未出现在结果里,是因为df1中该条目的date是1997-12-31,df2中同catcode_id的条目date是2007-12-31,日期不匹配,会被内连接逻辑自动过滤。

内容的提问来源于stack exchange,提问作者ferrelwill

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.30 08:46:34