![](https://filescdn.proginn.com/1ce4d521624ee1ab529a067b4a9af38e/650fc0c8f44cd02191feaf53261dcb45.webp)
比较操作是很简单的基础知识,不过Pandas中的比较操作有一些特殊的点,本文进行介绍。
一、比较运算符和比较方法
比较运算符用于判断是否相等和比较大小,Python中的比较运算符有==、!=、<、>、<=、>=六个,Pandas中也一样。
在Pandas中,DataFrame和Series还支持6个比较方法,详见下表。![](https://filescdn.proginn.com/9b743204b849427ab51afe1e79be4df4/63ab5e4ec5700d00c1aac7277c346ad5.webp)
对于比较操作,==和!=支持各种类型的数据互相比较,而<、>、<=、>=对数据类型有限制,如整数可以与浮点数比较大小,但整数不能与字符串比较大小,会报错。这一点,适用于后面的所有比较。
二、两个DataFrame比较
1. 用算术运算符比较
![](https://filescdn.proginn.com/005f22d2e4c9b40a8371fefe088dbe9d/ef5c6e7cb24a12fed6ceb3236196c8e9.webp)
两个DataFrame进行比较,是将DataFrame中对应位置的数据进行比较。
使用比较运算符,两个DataFrame的形状必须相同,索引必须相同(索引顺序也必须相同),否则会报错。
2. 用比较方法比较
![](https://filescdn.proginn.com/379f9a177a98c06fb791b18b53238faa/3d897c2bba8952989ea4539c06811212.webp)
直接用DataFrame调用比较方法,传入另一个DataFrame,即可完成比较操作。
![](https://filescdn.proginn.com/06c3820983b024ac74ed65197698f9e6/aa0271b8c94e5343a46fa76d9a06e831.webp)
使用比较方法时,两个DataFrame的形状可以不相同,索引也可以不相同。结果是能兼容两个被比较DataFrame的新DataFrame,原理如下图。
![](https://filescdn.proginn.com/afc4776e9df32e536ba5d73c0532bce4/74d1f09c029e91ac1ea36e2a6c65fadd.webp)
三、两个Series比较
1. 用算术运算符比较
使用比较运算符,两个Series的长度必须相同,索引必须相等(索引顺序也必须相同),否则会报错。
2. 用比较方法比较
![](https://filescdn.proginn.com/6618a00dd36fa00de918b9b46f00d38f/9d4e6b0c6f83fbad82553a429a913fdf.webp)
使用比较方法,两个Series的长度可以不相同,索引也可以不相同。结果是能兼容两个被比较Series的新Series,原理同DataFrame。
四、与数字或字符串比较
1. DataFrame与数字比较
![](https://filescdn.proginn.com/c68f314f3fa0eaa2d53139ad5d3c7361/31d47382981059a954d51c3c28591066.webp)
用DataFrame中的每个数据都与数字进行比较,返回对应位置的布尔值,Series同理。比较方法和运算符作用相同。
2. DataFrame与字符串比较
![](https://filescdn.proginn.com/be57472243ff70242f1555a03fca9ec9/8071e3366a0a70b23783bc097e732142.webp)
将每个数据都与指定的字符串进行比较,Series同理。比较方法和运算符作用相同。
用多维数据与单个数据进行比较时,要注意数据的类型,如果有不支持的比较,会报错。
五、与array进行比较
![](https://filescdn.proginn.com/62b1559a5bb8da0c38f8bc8001ea475a/cd1b7b0eddf32379c78f31660725bc28.webp)
比较操作还支持DataFrame或Series与numpy中的array数据进行比较。array没有索引,所以对索引没有要求,但形状必须相同,否则会报错。比较方法和运算符作用相同。
以上就是Pandas中的比较操作介绍,如果需要本文代码,可以点击关注公众号“Python碎片”,然后在后台回复“pandas10”关键字获取完整代码。