Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 管道输入错误“;输入包含“NaN”;_Python_Scikit Learn_Pipelining - Fatal编程技术网

Python 管道输入错误“;输入包含“NaN”;

Python 管道输入错误“;输入包含“NaN”;,python,scikit-learn,pipelining,Python,Scikit Learn,Pipelining,我试图创建一个管道来帮助我处理一些数据:输入平均值,缩放数据,然后拟合回归 我对插补器有一些问题,可能是用错了。我知道我的数据包含NaN的;但当我试图将它们输入管道中时,我得到一个值错误: Traceback (most recent call last): File "<ipython-input-124-8517b294cb64>", line 1, in <module> modelBuild(df) File "C:/Users/tmori/Google Dr

我试图创建一个管道来帮助我处理一些数据:输入平均值,缩放数据,然后拟合回归

我对插补器有一些问题,可能是用错了。我知道我的数据包含NaN的;但当我试图将它们输入管道中时,我得到一个值错误:

Traceback (most recent call last):

File "<ipython-input-124-8517b294cb64>", line 1, in <module>
modelBuild(df)

File "C:/Users/tmori/Google Drive/Projects/Product Dimension Accuracy/Qubert_PredictiveModel/qubert_predictive_model.py", line 81, in modelBuild
clf_x = pipeline.fit_transform(df[['OverallHeight-ToptoBottom', 'OverallDepth-FronttoBack']], df['OverallWidth-SidetoSide'])

File "C:\Program Files\Anaconda\lib\site-packages\sklearn\pipeline.py", line 303, in fit_transform
return last_step.fit_transform(Xt, y, **fit_params)

File "C:\Program Files\Anaconda\lib\site-packages\sklearn\base.py", line 497, in fit_transform
return self.fit(X, y, **fit_params).transform(X)

File "C:\Program Files\Anaconda\lib\site-packages\sklearn\ensemble\forest.py", line 248, in fit
y = check_array(y, accept_sparse='csc', ensure_2d=False, dtype=None)

File "C:\Program Files\Anaconda\lib\site-packages\sklearn\utils\validation.py", line 407, in check_array
_assert_all_finite(array)

File "C:\Program Files\Anaconda\lib\site-packages\sklearn\utils\validation.py", line 58, in _assert_all_finite
" or a value too large for %r." % X.dtype)

ValueError: Input contains NaN, infinity or a value too large for dtype('float64').
以及数据帧数据的示例:

StagName   OverallDepth-FronttoBack  OverallHeight-ToptoBottom  \
PtagPrSKU                                                        
AABP1004                        NaN                       48.0   
AAI2179                        28.0                       32.0   
AAI2180                        28.0                       32.0   
AAI2181                        36.0                       32.0   
AAI2182                        36.0                       32.0   

StagName   OverallWidth-SidetoSide  
PtagPrSKU                           
AABP1004                      64.0  
AAI2179                       55.0  
AAI2180                       55.0  
AAI2181                       71.0  
AAI2182                       71.0
我很确定我只是错误地使用了插补器,但我不能用我的生命来精确地指出哪里

提前感谢所有的帮助

最好的,
Tom

尝试删除PtagPrSKU行

因此,在列名之后,应该只包含它们的值。实现这一点的简单方法是在加载数据时使用pandas并定义skiprow

以下内容对我来说很好

问题

PtagPrSKU行为每列插入一个空单元格(这就是问题所在)

我在这个例子中使用的文件可以在这里找到


将缺少的值标识符从“np.nan”更改为其他值(可能是0或非常大的数字)。我也有同样的问题,这对我来说很有效

StagName   OverallDepth-FronttoBack  OverallHeight-ToptoBottom  \
PtagPrSKU                                                        
AABP1004                        NaN                       48.0   
AAI2179                        28.0                       32.0   
AAI2180                        28.0                       32.0   
AAI2181                        36.0                       32.0   
AAI2182                        36.0                       32.0   

StagName   OverallWidth-SidetoSide  
PtagPrSKU                           
AABP1004                      64.0  
AAI2179                       55.0  
AAI2180                       55.0  
AAI2181                       71.0  
AAI2182                       71.0
from sklearn.preprocessing import Imputer
from sklearn.preprocessing import StandardScaler
from sklearn.ensemble import RandomForestRegressor
from sklearn.pipeline import Pipeline
import pandas as pd



def buildit(df):
    imp = Imputer()  
    scl = StandardScaler()  
    clf = RandomForestRegressor()      
    pipeline = Pipeline([('imputer', imp), ('scaler', scl),  ('clf', clf)])
    clf_x = pipeline.fit_transform(df[['OverallHeight-ToptoBottom', 'OverallDepth-FronttoBack']], df['OverallWidth-SidetoSide'])

    return clf_x



df = pd.read_excel('t.xlsx',skiprows=[1])
print(df)
buildit(df)