小编use*_*496的帖子

通过将 sklearn.predict 传递给 df.apply 对 Pandas 数据帧进行行式预测

假设我们有一个 Pandas 数据框和一个 scikit-learn 模型,并使用该数据框进行训练(拟合)。有没有办法进行逐行预测?用例是使用 sklearn 模型使用预测函数填充数据框中的空值。

我预计这可以使用 pandas apply 函数(轴=1)实现,但我不断收到维度错误。

使用 Pandas 版本“0.22.0”和 sklearn 版本“0.19.1”。

简单的例子:

import pandas as pd
from sklearn.cluster import kmeans

data = [[x,y,x*y] for x in range(1,10) for y in range(10,15)]

df = pd.DataFrame(data,columns=['input1','input2','output'])

model = kmeans()
model.fit(df[['input1','input2']],df['output'])

df['predictions'] = df[['input1','input2']].apply(model.predict,axis=1)
Run Code Online (Sandbox Code Playgroud)

由此产生的维数误差:

ValueError: ('Expected 2D array, got 1D array instead:\narray=[ 1. 
10.].\nReshape your data either using array.reshape(-1, 1) if your data has 
a single feature or array.reshape(1, -1) if it contains a single sample.', 
'occurred …
Run Code Online (Sandbox Code Playgroud)

python pandas scikit-learn

5
推荐指数
1
解决办法
6002
查看次数

标签 统计

pandas ×1

python ×1

scikit-learn ×1