熊猫和线性回归:单个 x 的多个 y 值



我有一个csv,其中包含一定时间内每晚的租金单价。如果单位是租用的,价格列在日期下方。如果未租用,则价格显示为N/A。数据结构如下:

bedrooms  day1   day2   day3...   day(n)
2          75    N/A     70       50
2          60    60      60       60
4          100   110     N/A      N/A
3          75    80      80       N/A

。等等。

我正在用熊猫阅读这个csv。我希望能够使用scikit-learn的LinearRegression来预测给定卧室数量的价格。你这样做是这样的:

from sklearn.linear_model import LinearRegression
model = LinearRegression()
# X is numpy array or sparse matrix of shape [n_samples,n_features]
# y is numpy array of shape [n_samples, n_targets]
model.fit(X, y)

如何使用熊猫以正确的格式获取数据?

编辑以澄清:

正确的格式是将每个价格与卧室相关联,如下所示:

bedrooms  price
2          75    
2          70       
2          50
2          60 
2          60 
2          60 
2          60 
4          100
4          110
3          80
3          80

可以将索引添加到bedrooms列并堆叠数据帧。

开车确保所有东西都有一个名字,整个事情看起来像这样:

from StringIO import StringIO
import pandas
datafile = StringIO("""
bedrooms  day1   day2   day3     day(n)
2          75    N/A     70       50
2          60    60      60       60
4          100   110     N/A      N/A
3          75    80      80       N/A
""")
df = pandas.read_table(datafile, sep='s+', index_col='bedrooms')
df.columns.names = ['days rented']
prices = df.stack()
prices.name = 'dollars'
prices.reset_index()

其中打印出来:

    bedrooms days rented  dollars
0          2        day1       75
1          2        day3       70
2          2      day(n)       50
3          2        day1       60
4          2        day2       60
5          2        day3       60
6          2      day(n)       60
7          4        day1      100
8          4        day2      110
9          3        day1       75
10         3        day2       80
11         3        day3       80

相关内容

  • 没有找到相关文章

最新更新