机器学习问题:我在测试数据中创建了一个新列,但它填充的是NaN而不是中位数值

我正在尝试通过根据区域和MZZONE的价格中位数来预测销售价格,以下是数值:

combo=pd.pivot_table(train,values=['SALES_PRICE'],index=['MZZONE','AREA'],aggfunc='median')combo

输出:

                        SALES_PRICE MZZONE  AREA       A   Adyar           7144042.5        Karapakkam      5468500.0        Velachery       8428745.0    C   Adyar           7877645.0        Karapakkam      6443000.0        Velachery       9170660.0    I   Adyar           8785350.0

但是当我尝试在测试数据中创建一个新列时,整个列都填充了NaN,以下是我用于在测试数据中填充中位数值的代码:

test['super_mean']=0s2 = 'MZZONE's1 = 'AREA'for i in test[s1].unique():  for j in test[s2].unique():    test['super_mean'][ (test[s1]==str(i)) & (test[s2]==str(j)) ] = train['SALES_PRICE'][ (train[s1]==str(i)) & (train[s2]==str(i)) ].median()

为什么会这样?


回答:

你在’j’循环内的代码中犯了一个错误。你用了一个’i’而应该用’j’。这是正确的for循环:

test['super_mean']=0s2 = 'MZZONE's1 = 'AREA'for i in test[s1].unique():  for j in test[s2].unique():    test['super_mean'][ (test[s1]==str(i)) & (test[s2]==str(j)) ] = train['SALES_PRICE'][ (train[s1]==str(i)) & (train[s2]==str(j)) ].median()

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注