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

如何基于索引提取DataFrame 2中独有的5行数据?

提取DataFrame中基于索引的独有行

高效直接的解法

由于你的两个DataFrame均以日期为索引,且DataFrame 2的新增行索引不存在于DataFrame 1中,直接通过索引差集即可快速提取目标行:

# 获取DataFrame 2独有的索引
unique_indices = df2.index.difference(df1.index)
# 根据索引提取对应行
unique_rows = df2.loc[unique_indices]

这种方法利用Pandas优化后的索引结构,效率远高于merge操作,逻辑也完全匹配你的需求——仅提取DataFrame 2中索引不在DataFrame 1内的行。

对已有尝试方法的分析

  • 左外连接merge:可行但效率低,因为表连接涉及更多底层运算,对于仅需索引匹配的场景属于冗余操作。
  • 拼接后去重:稳定性差,仅当两个DataFrame无内部重复行/索引时才可能生效,否则会误删有效数据。
  • 减法方法:你提到的就是上述的索引差集操作,本质是集合运算,df2.index.difference(df1.index)等价于取df2索引减去df1索引的结果,精准对应你需要的新增行。

额外验证(针对日期索引)

如果你的索引是datetime类型,该方法依然适用,可通过以下代码验证结果范围:

print(df1.index.max())  # 输出:2020-02-20
print(unique_indices)   # 输出:2020-02-21至2020-02-25的日期索引

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 05:30:17