使用sklearn将.csv文件加载到python中



我正在尝试将.csv文件导入scikit-learn。我知道我可以使用熊猫,但不知道如何使用我的数据集看起来像这个

0.9731  0.9695  0.9857  0.9909  0.9448  0.9367  0.9976  0.9672
0.9723  0.9767  0.9767  0.9656  0.9625  0.9589  0.9429  0.9319
0.9858  0.9886  0.9883  0.9784  0.9729  0.9683  0.9567  0.9428
0.9834  0.9838  0.9886  0.9782  0.9729  0.9629  0.9849  0.9456

我正在修窗户。我是sklearn的新手,我能够轻松加载内置的数据集并进行操作,但无法加载自己的数据集。

忽略io.StringIO位,这只是将字符串作为文件缓冲区传递的一种方式,您可以通过调用read_csv并传递参数header=Nonesep='s+':来轻松加载它

In [3]:
import io
import pandas as pd
temp = '''0.9731  0.9695  0.9857  0.9909  0.9448  0.9367  0.9976  0.9672
0.9723  0.9767  0.9767  0.9656  0.9625  0.9589  0.9429  0.9319
0.9858  0.9886  0.9883  0.9784  0.9729  0.9683  0.9567  0.9428
0.9834  0.9838  0.9886  0.9782  0.9729  0.9629  0.9849  0.9456'''
df = pd.read_csv(io.StringIO(temp), header=None, sep='s+')
df
Out[3]:
        0       1       2       3       4       5       6       7
0  0.9731  0.9695  0.9857  0.9909  0.9448  0.9367  0.9976  0.9672
1  0.9723  0.9767  0.9767  0.9656  0.9625  0.9589  0.9429  0.9319
2  0.9858  0.9886  0.9883  0.9784  0.9729  0.9683  0.9567  0.9428
3  0.9834  0.9838  0.9886  0.9782  0.9729  0.9629  0.9849  0.9456

我不知道这些值是什么,但您可以直接分配列:df.columns = [some_col_list]或将列表传递给read_csvnames=some_col_list

要将特定列传递给sklearn,只需对它们进行索引即可。例如,如果列的名称为col1....coln,则调用clf.fit(df['col1'], df['coln']),假设col1和coln分别是您的X和y列

将csv加载为pandas DataFrame后,您可能需要将数据转换为矩阵格式。

csv_matrix = df.as_matrix()

例如,sklearn.linear_model.LinearRevolution等几个模型需要矩阵格式的数据:http://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LinearRegression.html

相关内容

  • 没有找到相关文章

最新更新