Pandas 如何将model.predict()的结果合并回原始DataFrame

Pandas 如何将model.predict()的结果合并回原始DataFrame

在本文中,我们将探讨如何将机器学习模型预测的结果与原始的Pandas DataFrame合并,以便进行数据分析、可视化或导出。

首先,我们需要使用Pandas和Scikit-learn建立一个简单的回归模型,并对样本数据进行预测。以下是一些模拟数据的样例:

import pandas as pd
from sklearn.linear_model import LinearRegression

# 创建一个DataFrame
df = pd.DataFrame({
    'x': [1, 2, 3, 4, 5],
    'y': [0, 1, 2, 3, 4]
})

# 将x列作为自变量,y作为因变量
X = df[['x']]
y = df['y']

# 建立一个线性回归模型
lm = LinearRegression()
lm.fit(X, y)

# 预测x=6时y的取值
pred = lm.predict([[6]])
print(pred)
# 输出[5.]

接下来,我们将在原始DataFrame中添加第6行,并将模型预测的结果合并到df中:

# 添加一行数据
new_data = {'x': 6, 'y': None}
df = df.append(new_data, ignore_index=True)

# 对新添加的数据进行预测,并将预测结果保存到DataFrame的最后一行
df.iloc[-1, 1] = lm.predict([[6]])[0]

print(df)

输出结果:

   x  y
0  1  0
1  2  1
2  3  2
3  4  3
4  5  4
5  6  5

在上面的示例中,我们使用iloc方法将最后一行的第二个元素(即y值)设为预测模型的输出结果。另一种会更直观的方法是使用Pandas的.at方法:

df.at[df.index[-1], 'y'] = lm.predict([[6]])[0]

print(df)

输出结果与上面的示例相同。

有时我们需要对整个DataFrame进行预测,对于这种情况,我们可以使用Pandas的.apply()方法一行代码解决:

df['y_pred'] = df['x'].apply(lambda x: lm.predict([[x]])[0])

print(df)

输出:

   x  y  y_pred
0  1  0     0.0
1  2  1     1.0
2  3  2     2.0
3  4  3     3.0
4  5  4     4.0
5  6  5     5.0

阅读更多:Pandas 教程

总结

使用Pandas将模型预测的结果合并回原始的DataFrame是一项常见的任务,它可以帮助我们进一步分析和可视化数据,从而得出有意义的结论。在本文中,我们通过示例代码演示了如何将预测结果合并到DataFrame中,并给出了简化代码的技巧。希望这篇文章对你有所帮助!

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程