Saat mencoba memplot outlier menggunakan warna berbeda pada plot sebar, saya menemukan kesalahan ini:
TypeError: Tidak dapat mentransmisikan data array dari dtype('U1') ke dtype('float64') sesuai dengan aturan 'aman'
Kode saya:
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')
Adakah yang tahu di mana masalahnya dan bagaimana cara mengatasinya? Terima kasih,