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

如何基于另一DataFrame的索引过滤Pandas DataFrame并生成结果?

基于DataFrame索引过滤行的实现方法

当然可以实现这个需求,以下是两种常用的pandas解决方案:

方法一:使用isin()配合布尔取反

先创建示例中的两个DataFrame:

import pandas as pd

# 第一个DataFrame
df1 = pd.DataFrame(
    {'C1': [1, 1, 0, 1], 'C2': [1, 1, 0, 1], 'C3': [1, 1, 0, 1], 'C4': [1, 1, 0, 1]},
    index=['A', 'B', 'C', 'D']
)

# 第二个DataFrame
df2 = pd.DataFrame(
    {'C1': [1, 1], 'C2': [1, 1], 'C3': [1, 1], 'C4': [1, 1]},
    index=['A', 'C']
)

执行过滤操作:

# 保留df1中索引不在df2里的行
result_df = df1[~df1.index.isin(df2.index)]

输出结果:

C1  C2  C3  C4
B   1   1   1   1
D   1   1   1   1

方法二:使用drop()方法

直接删除df1中索引匹配df2的行,errors='ignore'参数可以避免因索引不存在引发的报错:

result_df = df1.drop(df2.index, errors='ignore')

该方法得到的结果和方法一完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 05:19:58