列以进行简单的线性回归

列以进行简单的线性回归

import pandas as pd
import numpy as np

from sklearn.linear_model import LinearRegression

df = pd.read_excel("Book1.xlsx")

for column in df:

    X = df["Row Labels"]

    Y = df[column]
    y1 =Y.values.reshape(-1,1)
    x1 =X.values.reshape(-1,1)
    regressor = LinearRegression()
    regressor.fit(x1, y1)
    y_new = []
    y_i = []
    for i in range(12,24):
        y_new.append(regressor.predict([[i]]))
        y_i.append(i)

    df2 = pd.DataFrame({'column':y_new})


我编写此代码以遍历dataframe列以进行简单的线性回归,并将所有预测值放入dataframe中。但它仅预测最后一列的值。

最佳答案

df2 = pd.DataFrame({'column':y_new})逐字创建一个名为'column'的列(不是保存在变量column中的名称。此外,在每次迭代中都会重新创建df2,每次迭代仅保存最后一个y_new

我认为您想要的是在每次迭代中在df2中创建一个新列:

import pandas as pd
import numpy as np

from sklearn.linear_model import LinearRegression

df = pd.read_excel("Book1.xlsx")

df2 = pd.DataFrame()

for column in df:

    X = df["Row Labels"]

    Y = df[column]
    y1 =Y.values.reshape(-1,1)
    x1 =X.values.reshape(-1,1)
    regressor = LinearRegression()
    regressor.fit(x1, y1)
    y_new = []
    y_i = []
    for i in range(12,24):
        y_new.append(regressor.predict([[i]]))
        y_i.append(i)

    df2[column] = y_new

关于python - 遍历数据框列以进行简单的线性回归?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/59423967/

10-12 21:17