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

基于行名匹配两个DataFrame并过滤第二个数据集冗余行的技术咨询

基于行名匹配筛选DataFrame的解决方案

核心思路

以第一个DataFrame(记为df1)的行索引为基准,筛选第二个DataFrame(记为df2)中行名与df1完全匹配的行,自动剔除不匹配的冗余数据。

具体实现方法

方法1:直接用isin()+loc筛选(最简洁高效)

import pandas as pd

# 假设df1是你的258行DataFrame,df2是268行DataFrame
filtered_df2 = df2.loc[df2.index.isin(df1.index)]

这段代码会保留df2中所有行名存在于df1索引中的行,自动过滤掉冗余行。

方法2:用内连接实现匹配筛选

如果需要同时关联df1和匹配后的df2数据,可以使用内连接:

# 内连接仅保留双方行名匹配的行,结果包含df1和df2的所有列
joined_df = df1.join(df2, how='inner')
# 若仅需提取df2的匹配行,筛选对应列即可
filtered_df2 = joined_df[df2.columns]

验证筛选结果

可以通过以下代码确认操作是否正确:

# 查看被剔除的冗余行名
dropped_indices = df2.index.difference(df1.index)
print("被剔除的行名:", dropped_indices)

# 检查筛选后df2的行数是否与df1一致
print("筛选后df2行数:", len(filtered_df2))
print("df1行数:", len(df1))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 10:55:18