首页 > 后端开发 > Python教程 > 如何使用'IN”和'NOT IN”运算符有效过滤 Pandas DataFrame?

如何使用'IN”和'NOT IN”运算符有效过滤 Pandas DataFrame?

Barbara Streisand
发布: 2024-12-29 16:22:19
原创
830 人浏览过

How Can I Efficiently Filter Pandas DataFrames Using

使用“In”和“Not In”过滤 Pandas 数据框:更简单的解决方案

使用 Pandas 数据框时,通常有必要根据特定标准过滤数据。一个常见的要求是查找特定列与一组预定义值匹配或不匹配的行,类似于 SQL“IN”和“NOT IN”运算符。

替代合并-基于方法

传统上,一些用户采用基于合并的方法来实现这种过滤。虽然有效,但此方法被认为效率低且不必要地复杂。

使用 pd.Series.isin

理想的解决方案在于利用 pd.Series.isin 函数。它为“IN”和“NOT IN”过滤提供了简单的功能。

“IN”过滤

过滤特定列与中的任何值匹配的行提供的列表,使用:

something.isin(somewhere)
登录后复制

“不在”过滤

或者,要过滤列值与给定列表中的任何值都不匹配的行,请使用:

~something.isin(somewhere)
登录后复制

示例用法

考虑以下因素示例:

df = pd.DataFrame({'country': ['US', 'UK', 'Germany', 'China']})

countries_to_keep = ['UK', 'China']

df_in = df[df.country.isin(countries_to_keep)]
df_not_in = df[~df.country.isin(countries_to_keep)]

print(df_in)
print(df_not_in)
登录后复制

输出:

    country
1        UK
3     China
    country
0        US
2   Germany
登录后复制

如所示,pd.Series.isin 提供了一种简洁高效的方法来过滤 Pandas 数据帧。它消除了对复杂的基于合并的方法的需要,使过滤过程更简单、更高效。

以上是如何使用'IN”和'NOT IN”运算符有效过滤 Pandas DataFrame?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板