这里也可以看到数据示例(不是真实数据)。 I的数据集为3x500,列名为:作业级别(数字)、作业代码(分类)和股票值(数字)。我使用线性回归来拟合基于职务级别的股票价值,按职务代码分组。例如:
职务代码职务级别职务名称股票价值
20 1名生产工程师
20 2生产工程师
20 3生产工程师6 985
20 4生产工程师7 852
20 5生产工程师
30 1名生产工程师
30 2名后勤分析员
30 3名后勤分析员4 962
30 4名后勤分析员22 613
30 5名后勤分析员31 689
40 1名后勤分析员
这就是我所做的。如何查看添加了预测值的数据集列(原始数据)。现在我只能看到预言。我不能把他们连在一起,因为:
这里是这样的情况:当我第一次启动我的代码时,= (268,4),然后在for循环my df_nonull.shape = (4,4)之后,然后df_results.shape = (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)
只有FYI,我的主要目标是在没有NaN (df_nonull)的数据集中运行一个回归模型,并将线性回归系数应用于整个数据(对于股票值,y) (df)。这与我所要求的没有任何关系,但我想提供一些关于我为什么要追求这个的回溯信息。
发布于 2017-05-25 04:58:35
假设输入数据和预测序列具有一致的索引。我想你需要的是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
我推荐大熊猫(0.20.1),特别是在串连的这一部分。
发布于 2017-05-25 09:01:24
然后,可以使用下面的命令创建一个包含数据集值和预测值的单个数据帧。
df_nonull.join(df_results,how="outer")
https://stackoverflow.com/questions/44172103
复制相似问题