使用Python进行线性回归(Pandas和Numpy)

Pra*_*Das 3 python csv numpy machine-learning pandas

我正在尝试使用python实现线性回归.

我做了以下步骤:

import pandas as p
import numpy as n
data = p.read_csv("...path\Housing.csv", usecols=[1]) # I want the first col
data1 = p.read_csv("...path\Housing.csv", usecols=[3]) # I want the 3rd col
x = data
y = data1
Run Code Online (Sandbox Code Playgroud)

然后我尝试获得系数,并使用以下内容:

regression_coeff = n.polyfit(x,y,1)
Run Code Online (Sandbox Code Playgroud)

然后我收到以下错误:

raise TypeError("expected 1D vector for x")
TypeError: expected 1D vector for x
Run Code Online (Sandbox Code Playgroud)

我不能让我的解决这个头,因为当我打印xy,我可以很清楚的看到,他们是一维向量.

有人可以帮忙吗?

数据集可以在这里找到:DataSet

原始代码是:

import pandas as p
import numpy as n

data = pd.read_csv('...\housing.csv', usecols = [1])
data1 = pd.read_csv('...\housing.csv', usecols = [3])

x = data
y = data1
regression = n.polyfit(x, y, 1)
Run Code Online (Sandbox Code Playgroud)

Mik*_*ler 5

这应该工作:

np.polyfit(data.values.flatten(), data1.values.flatten(), 1)
Run Code Online (Sandbox Code Playgroud)

data 是一个数据框,其值为2D:

>>> data.values.shape
(546, 1)
Run Code Online (Sandbox Code Playgroud)

flatten() 把它变成1D数组:

>> data.values.flatten().shape
(546,)
Run Code Online (Sandbox Code Playgroud)

这需要polyfit().

更简单的选择:

df = pd.read_csv("Housing.csv")
np.polyfit(df['price'], df['bedrooms'], 1)
Run Code Online (Sandbox Code Playgroud)