[英]TypeError: Cannot cast array data from dtype('<U1') to dtype('float64') according to rule 'safe'
當試圖在散點圖上使用不同的顏色繪制離群值時,我遇到了此錯誤:
TypeError:根據規則“安全”,無法將數組數據從dtype('U1')轉換為dtype('float64')
我的代碼:
import statsmodels.api as sm
import pandas as pd
import matplotlib.pyplot as plt
import numpy as np
CRP = pd.read_csv('CarsProp.csv')
priceMean = CRP.price.mean()
priceStd = CRP.price.std()
CRP['isOutlierPrice'] = np.nan
testColumn1 = abs(CRP.price - priceMean) > 2*priceStd
for i, value in enumerate(testColumn1):
if value == True:
CRP['isOutlierPrice'][i] = 1
mileageMean = CRP.mileage.mean()
mileageStd = CRP.mileage.mean()
CRP['isOutlierMileage'] = np.nan
testColumn2 = abs(CRP.mileage - mileageMean) > 2*priceStd
for i, value in enumerate(testColumn2):
if value == True:
CRP['isOutlierMileage'][i] = 1
outlierPmsJoint = ((CRP['isOutlierPrice'] == 1) | (CRP['isOutlierMileage'] == 1))
colorChoiceDict = {True: (1.0, 0.55, 0.0, 1.0),
False: (0.11, 0.65, 0.72, 0.1)}
colorCol = [colorChoiceDict[val] for val in outlierPmsJoint]
PriceFloat = [float(val) for val in CRP.price]
MileageFloat = [float(val) for val in CRP.mileage]
plt.figure()
plt.scatter(PriceFloat, MileageFloat, c = colorCol, linewidth='0')
plt.set_title('Price vs. Mileage with outliers')
有誰知道問題在哪里以及如何解決? 謝謝,
問題出在散布圖線上。 它應該是:
plt.scatter(PriceFloat, MileageFloat, c = colorCol, linewidth=0)
我將線寬arg置於倒置昏迷狀態,這沒有產生輸出。 但是,錯誤消息是非常令人誤解的。 下次在調試時,我可能會較少關注該錯誤消息。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.