首页 > 后端开发 > Python教程 > 如何使用 Pandas 的'isin”函数来模仿 SQL 的'IN”和'NOT IN”运算符?

如何使用 Pandas 的'isin”函数来模仿 SQL 的'IN”和'NOT IN”运算符?

Susan Sarandon
发布: 2024-12-21 22:25:22
原创
215 人浏览过

How Can I Use Pandas' `isin` Function to Mimic SQL's `IN` and `NOT IN` Operators?

利用 SQL 的 IN 和 NOT IN 功能查询 Pandas DataFrames

过滤 Pandas DataFrames 中的数据是数据处理中的一项常见任务。 Pandas 提供了多种方法来实现这一点,包括直观的 isin 函数。本文演示如何利用 isin 来过滤数据,模仿 SQL 的 IN 和 NOT IN 运算符。

理解问题

SQL 的 IN 和 NOT IN 运算符允许您根据值是否包含在指定列表中或排除在指定列表中来过滤数据。此功能对于隔离特定记录或删除不需要的数据至关重要。

使用 isin 过滤数据

Pandas 提供了 isin 函数,该函数对 Series 对象进行操作。它返回一个布尔掩码,指示 Series 中的每个元素是否与提供的列表或数组中的任何值匹配。

IN 过滤

要执行 IN 操作,只需传递要使用以下语法与 isin 函数匹配的值列表:

something.isin(somewhere)
登录后复制

NOT IN过滤

要执行 NOT IN 操作,请在 isin 函数之前使用否定运算符 ~:

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

工作示例

考虑以下 DataFrame df 和要保留的国家/地区列表country_to_keep:

df = pd.DataFrame({'country': ['US', 'UK', 'Germany', 'China']})
countries_to_keep = ['UK', 'China']
登录后复制

查找country_to_keep:

df[df.country.isin(countries_to_keep)]
登录后复制

输出中包含国家/地区的行:

    country
1        UK
3     China
登录后复制

查找不包含国家/地区的行包含在country_to_keep:

df[~df.country.isin(countries_to_keep)]
登录后复制

输出:

    country
0        US
2   Germany
登录后复制

使用 isin 的好处

  • 简洁: isin 函数提供了一种简洁的方法来执行 IN 和 NOT IN 过滤,减少需要复杂的代码。
  • 灵活性: isin 可以与任何类型的 Series 一起使用,包括字符串、整数和对象。
  • 效率: isin 利用优化的算法来执行过滤,即使对于大型数据也能高效地进行过滤

通过理解和利用 isin 函数,您可以根据指定列表或数组中的值有效过滤 Pandas DataFrame,从而利用 SQL 的 IN 和 NOT IN 的强大功能来增强您的数据处理任务运营商。

以上是如何使用 Pandas 的'isin”函数来模仿 SQL 的'IN”和'NOT IN”运算符?的详细内容。更多信息请关注PHP中文网其他相关文章!

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