TypeError: ufunc did not contain a loop with signature matching types dtype('U32')

原因:object類型和int類型相加減

解決方法:

此時的object類型可能是‘12.3’這樣str格式的數字,如果要運算必須進行格式轉換: 
可採用如下方法(pd.to_numeric()):

panel_info['input'] = pd.to_numeric(panel_info['input'])

參考:https://blog.csdn.net/m0_37477175/article/details/77887274

在數據處理過程中
比如從CSV文件中導入數據

data_df = pd.read_csv("names.csv")

在處理之前一定要查看數據的類型

data_df.info()

*RangeIndex: 891 entries, 0 to 890 

Data columns (total 12 columns): 
Name 891 non-null object 
Sex 891 non-null object 
Age 714 non-null float64 
SibSp 891 non-null int64 
Parch 891 non-null int64 
Ticket 891 non-null object 
Fare 891 non-null float64 
Cabin 204 non-null object 
Embarked 889 non-null object 
dtypes: float64(2), int64(5), object(5) 
memory usage: 83.6+ KB* 
以上object , int64, 以及 float64 便是數據的類型。 
如果我們需要對列數據進行相互之間的運算的吧,必須注意的一點是: 
兩列的數據類型是否是相同的!! 
如果一個object類型與int64的類型相加,便會發生錯誤 
錯誤提示可能如下:

TypeError: ufunc 'add' not contain a loop with signature matching types dtype('<U32') dtype('<U32')  dtype('<U32')

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章