TypeError: ufunc did not contain a loop with signature matching types dtype('U32')
阿新 • • 發佈:2018-12-20
原因: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')