当前位置:网站首页>Unpleasant error typeerror: cannot perform 'ROR_‘ with a dtyped [float64] array and scalar of type [bool]
Unpleasant error typeerror: cannot perform 'ROR_‘ with a dtyped [float64] array and scalar of type [bool]
2022-07-06 15:20:00 【Jane said Python】
Hello everyone , I'm an old watch , This series will record some problems and solutions I encounter in programming , Will directly take the error report encountered as the title , In this way, it is more convenient for other learners to search for problem solutions in the browser , You are also welcome to comment on 、 More communication in the message area , Talk about your understanding or problems .
such as Unpleasant –requests.exceptions.ProxyError Is a good demonstration .
Today, when processing a data , Executed a line of code , As a result, there was a big problem !!!
# Simple data processing , Remove recommended hot search and top hot search
wb_hot_data.drop(wb_hot_data[wb_hot_data['wb_rank']=='•' | pd.isna(wb_hot_data['wb_rank'])].index)


Look at this pile of errors , I guess the code is also wronged !!!
Let's talk directly about how to solve :
# Simple data processing , Remove recommended hot search and top hot search
wb_hot_data.drop(wb_hot_data[(wb_hot_data['wb_rank']=='•') | pd.isna(wb_hot_data['wb_rank'])].index)
Maybe you don't see what has changed , In fact, it's for wb_hot_data['wb_rank']=='•' Added a bracket .
Next, let's talk about how this error occurs with example data ?
import pandas as pd
import numpy as np
a=np.array([['a',2,3],['b',5,6],[np.NaN,8,9],['a',4,7]])
df1=pd.DataFrame(a,columns=list('ABC'))
print(df1)
''' A B C 0 a 2 3 1 b 5 6 2 nan 8 9 3 a 4 7 '''
I want to delete A The value in the column is ’a’ perhaps None The line of :
df1.drop(df1[df1['A']=='a' | pd.isna(df1['A'])].index)
There seems to be nothing wrong with writing like this , But when running, there will be annoying errors in the title .
So Google checked , eureka An article with the same mistake , Bloggers in the comment area put parentheses around an expression , It's a priority issue .
See the answer , I understand , If you don't have a solid foundation, you will suffer losses .
df1.drop((df1[df1['A']=='a') | pd.isna(df1['A'])].index)
# Just add a bracket
''' A B C 1 b 5 6 2 nan 8 9 '''
We'll find here nan Not deleted ? Because the initialization is this nan Has been automatically converted to a string , So it can't be recognized as nan Be deleted , Let's talk about this in other articles , You can also leave a message to say your views .
Add another case , When A Column as numeric data , See what happens ?
import pandas as pd
import numpy as np
# a=np.array([['a',2,3],['b',5,6],[np.NaN,8,9],['a',4,7]])
a=np.array([[1,2,3],[2,5,6],[np.NaN,8,9],[2,4,7]])
df1=pd.DataFrame(a,columns=list('ABC'))
print(df1)
''' A B C 0 1.0 2.0 3.0 1 2.0 5.0 6.0 2 NaN 8.0 9.0 3 2.0 4.0 7.0 '''
# I want to delete A The value in the column is 2 perhaps None The line of
df1.drop(df1[df1['A']==2 | pd.isna(df1['A'])].index)
''' A B C 1 2.0 5.0 6.0 2 NaN 8.0 9.0 3 2.0 4.0 7.0 '''
At this time, we found out , No report error , But the result is obviously problematic , Why is that ?
This is because numeric types can be directly associated with bool Type data , So there was no error ; The result is wrong because by operator priority , to 2 | pd.isna(df1['A']), What comes out is true(2 Is a definite number , stay bool The type is true,true Comparing with the numerical value will turn into 1), And then df1[‘A’] Conduct == operation , You'll find only the first line 1 Is satisfied (1==ture), So the first line will be deleted .
So it's still operator priority , Or add () You can solve the problem .
df1.drop(df1[(df1['A']==2) | pd.isna(df1['A'])].index)
''' A B C 0 1.0 2.0 3.0 '''
# Why can we put nan Value delete ? You can talk about
So the problem we have today is caused by operator priority String type data and bool Type data cannot be | operation .
The last attached Python List of operator priority and specificity .
Reference resources
[1] stackoverflow Answer relevant questions
https://stackoverflow.com/questions/20333435/pandas-comparison-raises-typeerror-cannot-compare-a-dtyped-float64-array-with
[2] Python List of operator priority and specificity
http://c.biancheng.net/view/2190.html
边栏推荐
- 遇到程序员不修改bug时怎么办?我教你
- Global and Chinese markets of cobalt 2022-2028: Research Report on technology, participants, trends, market size and share
- JDBC introduction
- [oiclass] share prizes
- Leetcode simple question: check whether the numbers in the sentence are increasing
- [200 opencv routines] 98 Statistical sorting filter
- If the position is absolute, touchablehighlight cannot be clicked - touchablehighlight not clickable if position absolute
- Build your own application based on Google's open source tensorflow object detection API video object recognition system (II)
- 软件测试需求分析之什么是“试纸测试”
- Global and Chinese market of portable and handheld TVs 2022-2028: Research Report on technology, participants, trends, market size and share
猜你喜欢

Mysql database (I)

MySQL数据库(四)事务和函数

The latest query tracks the express logistics and analyzes the method of delivery timeliness
![[200 opencv routines] 98 Statistical sorting filter](/img/ba/9097df20f6d43dfce9fc1e374e6597.jpg)
[200 opencv routines] 98 Statistical sorting filter

MySQL development - advanced query - take a good look at how it suits you

C language do while loop classic Level 2 questions

Introduction to safety testing

The maximum number of words in the sentence of leetcode simple question

Leetcode notes - dynamic planning -day7

The minimum number of operations to convert strings in leetcode simple problem
随机推荐
Global and Chinese market of goat milk powder 2022-2028: Research Report on technology, participants, trends, market size and share
软件测试需求分析之什么是“试纸测试”
A method and implementation of using VSTO to prohibit excel cell editing
Nest and merge new videos, and preset new video titles
Servlet
How to become a good software tester? A secret that most people don't know
ucore lab7
基于485总线的评分系统
Knowledge that you need to know when changing to software testing
软件测试面试回答技巧
[pytorch] simple use of interpolate
Iterators and generators
線程及線程池
Face and eye recognition based on OpenCV's own model
Mysql database (III) advanced data query statement
MySQL transactions
Global and Chinese market for antiviral coatings 2022-2028: Research Report on technology, participants, trends, market size and share
Investment should be calm
UCORE lab8 file system experiment report
Leetcode simple question: check whether two strings are almost equal