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

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

Barbara Streisand
Barbara Streisand原创
2024-12-29 16:22:19838浏览

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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn