pandas 实现 in 和 not in 的用法及使用心得

 更新时间:2023年01月11日 14:35:32   作者:Ch3n  
pandas按条件筛选数据时,除了使用query()方法,还可以使用isin和对isin取反进行条件筛选,今天通过本文给大家介绍pandas 实现 in 和 not in 的用法及使用心得,感兴趣的朋友跟随小编一起看看吧

pandas in 和 not in 的用法

经常在处理数据中从一个总数据中清洗出数据, 但是有时候需要把没有处理的数据也统计出来.

这时候就需要使用:

pandas.DataFrame.isin

DataFrame中的每个元素是否都包含在值中

pandas文档位置

例子:

如何实现SQL的等价物IN和NOT IN?
我有一个包含所需值的列表。下面是一个场景:
df = pd.DataFrame({'countries':['US','UK','Germany','China']})
countries = ['UK','China']
 
# pseudo-code:
df[df['countries'] not in countries]

之前的做法是这样:

df = pd.DataFrame({'countries':['US','UK','Germany','China']})
countries = pd.DataFrame({'countries':['UK','China'], 'matched':True})
 
# IN
df.merge(countries,how='inner',on='countries')
 
# NOT IN
not_in = df.merge(countries,how='left',on='countries')
not_in = not_in[pd.isnull(not_in['matched'])]

但上面这样做觉得很不好, 也翻了文档才找到比较好解决方式.

# IN
something.isin(somewhere)
 
# NOT IN
~something.isin(somewhere)

例子:

>>> df
  countries
0        US
1        UK
2   Germany
3     China
>>> countries
['UK', 'China']
>>> df.countries.isin(countries)
0    False
1     True
2    False
3     True
Name: countries, dtype: bool
>>> df[df.countries.isin(countries)]
  countries
1        UK
3     China
>>> df[~df.countries.isin(countries)]
  countries
0        US
2   Germany

ps:pandas实现in和 not in

pandas中经常会需要对某列做一些筛选,比如筛选某列里的不包含某些值的行,类似sql里的in和not in功能,那么怎么实现呢。

import pandas as pd
columns = ['name','country']
index = [1,2,3,4]
row1 = ['a','China']
row2 = ['b','UK']
row3 = ['c','USA']
row4 = ['d','HK']

df = pd.DataFrame([row1,row2,row3,row4],
                   index=index,
                   columns=columns)
df

chinese = ['China','HK']

那么想查看数据中是chines的,

df[df.country.isin(chinese)]

查看数据中不是chines的,

到此这篇关于pandas 实现 in 和 not in 的用法及心得的文章就介绍到这了,更多相关pandas in 和 not in 的用法内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:

相关文章

  • Python算法之求n个节点不同二叉树个数

    Python算法之求n个节点不同二叉树个数

    本文先向大家分享了建立二叉树的简单代码,其次介绍了Python计算n个节点不同二叉树个数的问题及实现代码示例,具有一定参考价值,需要的朋友可以了解下。
    2017-10-10
  • Python 实现简单的电话本功能

    Python 实现简单的电话本功能

    这篇文章主要介绍了Python 实现简单的电话本功能的相关资料,包括添加联系人信息,查找姓名显示联系人,存储联系人到 TXT 文档等内容,十分的细致,有需要的小伙伴可以参考下
    2015-08-08
  • Python使用Pandas处理.xlsx文件的详细教程

    Python使用Pandas处理.xlsx文件的详细教程

    这篇文章主要介绍了如何使用Pandas库处理.xlsx文件,包括环境配置、读取、写入、数据操作和高级操作,Pandas提供了丰富的功能,使得数据处理变得简单高效,需要的朋友可以参考下
    2025-02-02
  • 在Django的视图中使用form对象的方法

    在Django的视图中使用form对象的方法

    这篇文章主要介绍了在Django的视图中使用form对象的方法,Django是Python丰富多彩的开发框架中最具有人气的一个,需要的朋友可以参考下
    2015-07-07
  • Python 中 and, or, &, |, ^ 的使用小结

    Python 中 and, or, &, |, ^ 

    这篇文章主要介绍了Python 中 and, or, &, |, ^ 的使用小结,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2024-01-01
  • pd.DataFrame中的几种索引变换的实现

    pd.DataFrame中的几种索引变换的实现

    本文主要介绍了pd.DataFrame中的几种索引变换的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-06-06
  • Pytorch框架之one_hot编码函数解读

    Pytorch框架之one_hot编码函数解读

    这篇文章主要介绍了Pytorch框架之one_hot编码函数解读,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-02-02
  • Python 异常处理的实例详解

    Python 异常处理的实例详解

    这篇文章主要介绍了Python 异常处理的实例详解的相关资料,希望通过本文能帮助到大家掌握Python 异常的知识,需要的朋友可以参考下
    2017-09-09
  • 分析Python编程时利用wxPython来支持多线程的方法

    分析Python编程时利用wxPython来支持多线程的方法

    这篇文章主要介绍了Python编程时利用wxPython来支持多线程的方法,本文主要以开发GUI程序时做线程通讯作为一个示例来讲解,需要的朋友可以参考下
    2015-04-04
  • 如何将python的数据存储到mysql数据库中

    如何将python的数据存储到mysql数据库中

    在很多数据处理项目中,将数据存储到数据库中是非常常见的操作,下面这篇文章主要给大家介绍了关于如何将python的数据存储到mysql数据库中的相关资料,需要的朋友可以参考下
    2023-12-12

最新评论