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/