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

Pandas灵活筛选需求:如何排除Counterparty为Bank的DataFrame记录

嘿,这个需求太常见了,我给你几个实用的实现方案,都是日常处理Pandas DataFrame时常用的套路:

1. 基础布尔索引(最直接)

这是最经典的写法,直接通过布尔数组筛选符合条件的行:

import pandas as pd

# 假设你的DataFrame叫df
filtered_df = df[df['Counterparty'] != 'Bank']

注意:如果你的Counterparty字段存在空值(NaN),这种写法会自动排除NaN的行——因为NaN != 'Bank'的结果是False,所以NaN行不会被筛选出来。

2. 包含空值的筛选(如果需要保留NaN行)

如果你想同时保留Counterparty不等于Bank以及空值的行,可以用两种方式实现:

方式一:组合条件

filtered_df = df[(df['Counterparty'] != 'Bank') | df['Counterparty'].isna()]

方式二:用eq()取反(更简洁)

filtered_df = df[~df['Counterparty'].eq('Bank')]

eq('Bank')会生成一个布尔数组,标记所有等于Bank的行,前面加~就是取反,这样既保留了非Bank的行,也会保留NaN的行(因为NaN和Bank不相等,取反后为True)。

3. 用query()方法(更贴近SQL风格)

如果你习惯SQL的写法,query()方法会让条件看起来更直观,尤其是复杂筛选时可读性更高:

filtered_df = df.query("Counterparty != 'Bank'")

# 如果要保留NaN行,写法如下:
filtered_df = df.query("Counterparty != 'Bank' or Counterparty.isna()")

小提示:如果你的字段名包含空格或特殊字符,在query()里需要用反引号包裹字段名,比如字段是Counter Party的话,就写 `Counter Party` != 'Bank'。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 08:51:40