专栏首页Python碎片公众号的专栏Pandas知识点-逻辑运算

Pandas知识点-逻辑运算

逻辑运算在代码中基本是必不可少的,Pandas的逻辑运算与Python基础语法中的逻辑运算存在一些差异,所以本文介绍Pandas中的逻辑运算符和逻辑运算。

本文使用的数据来源于网易财经,具体下载方法可以参考:Pandas知识点-DataFrame数据结构介绍

一、数据准备

数据文件是600519.csv,将此文件放到代码同级目录下,从文件中读取出数据。

为了使数据简洁一点,删除了数据中的部分列,并设置“日期”为索引。

读取的原始数据如上图,本文使用这些数据来介绍Pandas中的逻辑运算。

二、Pandas中的逻辑运算符

1. 逻辑语句

在Pandas中,将Series与数值进行比较,会得到一个与自身形状相同且全为布尔值的Series,每个位置的布尔值对应该位置的比较结果。

这种进行比较的代码,返回值是布尔值,是一种布尔表达式,也可以被称为逻辑语句,只要代码返回的结果是布尔值,都可以把代码当成逻辑语句。

根据逻辑语句的布尔值,可以用来对数据进行筛选,按我们的需要从大量数据中过滤出目标数据。

除了直接的比较,Pandas中有很多函数都会返回布尔值,如all(),any(),isna()等对整个DataFrame或Series的判断结果,eq(),ne(),lt(),gt()等比较函数的结果,都是布尔值。

逻辑语句是为逻辑运算服务的,可以直接作为判断条件。在复杂的逻辑关系中,需要使用复合逻辑运算,用逻辑运算符来连接多个逻辑语句,复合逻辑运算包含:逻辑与、逻辑或、逻辑非。

2. 逻辑与

Pandas中用符号 & 表示逻辑与,连接两个逻辑语句,同时为真才为真。

在Python基本语法中,使用 and 表示逻辑与,但是Pandas中只能用 & ,不能用and,会报模糊错误。

3. 逻辑或

Pandas中用符号 | 表示逻辑或,连接两个逻辑语句,只要其中一个为真就为真。

在Python基本语法中,使用 or 表示逻辑或,但是Pandas中只能用 | ,不能用or。

4. 逻辑非

Pandas中用符号 ~ (键盘左上角)表示逻辑非,对逻辑语句取反。

在Python基本语法中,使用 not 表示逻辑非,但是Pandas中只能用 ~ ,不能用not。

Python中的逻辑运算关键字(and,or,not)除了可以连接布尔表达式,还可以连接其他的表达式,如字符串等。(and和or可以不计算出右边表达式的布尔值就做出判断,也可以将其中一个表达式作为返回值。另外,Python可以将其他值作为布尔判断条件,如非空字符串表示真。)

而Pandas中,逻辑运算符(&, |, ~)只能用于连接布尔表达式,不能处理其他的表达式。另外,在Python的基础语法中,&, |, ~是位运算符,分别表示按位与运算、按位或运算、按位取反运算。

三、query()函数

逻辑运算是为了方便筛选和过滤数据,使用query()函数可以让逻辑语句更简洁,在query()函数中传入查询字符串,逻辑语句就在查询字符串中。

在查询字符串中,进行条件判断不是用列来判断,而是直接用列索引来判断。当多个条件并列时,因为逻辑运算符的优先级高于比较运算符的优先级,每一个逻辑语句的括号也可以省略。

以上就是Pandas中的逻辑运算介绍,重点是与Python基本语法的区别,不能用错,而通过query()函数可以使逻辑表达式更加简洁。

如果需要本文代码和数据,可以点击关注公众号“Python碎片”,然后在后台回复“pandas08”关键字获取完整代码和数据。

本文分享自微信公众号 - Python 碎片(python-suipian),作者:binn wong

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2021-04-25

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Pandas知识点-算术运算函数

    算术运算是最基本的运算,看起来很简单,但也有一些需要注意的地方,本文中会依次介绍。

    Python碎片公众号
  • Pandas知识点-统计运算函数

    统计运算非常常用。本文介绍Pandas中的统计运算函数,这些统计运算函数基本都可以见名知义,使用起来非常简单。

    Python碎片公众号
  • 逻辑运算

    一、逻辑运算符的种类及优先级 ▷逻辑运算符包括 not and or  ▷他们的优先级是 () > not > and > or 二、普通逻辑运算 ▷A and...

    人生不如戏
  • Python逻辑运算

    HCG_Sky
  • OpenCV-像素运算~逻辑运算

    将图片看成类型为uint8的像素矩阵,因此我们可以将两个像素矩阵进行加减乘除等一些列运算,这也被称为像素运算,像素运算包括两种:

    触摸壹缕阳光
  • DataFrame(7):DataFrame运算——逻辑运算

    https://alltodata.cowtransfer.com/s/b8aa2f26ca0947

    朱小五
  • mongoDB 逻辑运算符

    Leshami
  • Python逻辑运算符

    #!/usr/bin/python # -*- coding: UTF-8 -*- a = 10 b = 20 if a and b : print "1...

    用户8442333
  • 3.4 C++逻辑运算和逻辑表达式

    C++的逻辑常量只有两个:false和true,逻辑型变量的定义是用bool,bool类型的值只能是true或者false

    小林C语言

扫码关注云+社区

领取腾讯云代金券