向新数据帧追加预测

2024-06-01 03:01:13 发布

您现在位置:Python中文网/ 问答频道 /正文

Data example (not real data) can be also seen here我有一个3x500的数据集,列名称为:Job Level(数值)、Job Code(category)和Stock Value(numeric)。我使用线性回归来拟合股票价值,基于职务级别,按职务代码分组。 例如:

职务代码职务级别职务库存值

20 1生产工程师

20 2生产工程师

20 3生产工程师6985

20 4生产工程师7852

205生产工程师

30 1生产工程师

302物流分析员

30 3物流分析员4962

30 4物流分析员22613

30 5物流分析员31689

401物流分析员

这是我所做的。如何查看添加了预测值的数据集列(原始数据)。现在我只能看到预测。我不能把他们连在一起,因为:

情况如下:当我第一次启动代码时,我的df_非完整形状=(268,4)然后在for循环my df之后_非完整形状=(4,4)然后是df_结果.形状=(89,2)。结果,我不能加入他们。在

> import pandas as pd from sklearn.linear_model import LinearRegression
> df = pd.read_excel("stats.xlsx")
> df_nonull=df.dropna()
> 
> model= LinearRegression() groups = [] results = [] level = []
> 
> for (group, df_nonull) in df_nonull.groupby('Job Code'):
>     X=df_nonull[['Job Level']]
>     y=df_nonull[['Stock Value']]
>     model.fit(X,y)
>     coefs = list(zip(X.columns, model.coef_))
>     results.append(model.predict(735947)[0])
>     groups.append(group)
> 
> df_results = pd.DataFrame({'Job Code':groups, 'prediction':results})
> 
> print df_results.head(50)

仅供参考,我这里的主要目标是在没有NaN(df_nonull)的数据集中运行一个回归模型,并将线性回归系数应用于整个数据(对于股票价值,y)(df)。这与我的要求无关,但我想提供一些关于我为什么要这样做的回溯信息。在


Tags: 数据代码dfmodeljobcoderesultspd
2条回答

可以使用下面的命令创建一个包含数据集值和预测值的单个数据帧。在

df_nonull.join(df_results,how="outer")

假设输入数据和预测序列具有一致的索引。我想你需要的是pd.concat。在

import pandas as pd

>>> X = pd.DataFrame({'input': [i for i in range(10)]}) ## fake input data
>>> pred = pd.DataFrame({'prediction':[i-5 for i in range(10)]}) ## fake prediction data
>>> pd.concat([X, pred], axis=1)
   input  prediction
0      0          -5
1      1          -4
2      2          -3
3      3          -2
4      4          -1
5      5           0
6      6           1
7      7           2
8      8           3
9      9           4

我将特别推荐pandas(0.20.1),特别是关于concatenation的这一节。在

相关问题 更多 >