我正在尝试将.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
我正在开发Windows。我是sklearn的新手,我能够轻松加载内置数据集并对其进行处理,但无法加载我自己的数据集。
答案 0 :(得分:0)
忽略io.StringIO
位只是将字符串作为文件缓冲区传递的方法,您可以轻松调用read_csv
并传递参数header=None
和sep='\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_csv
,names=some_col_list
要将特定列传递给sklearn,只需索引它们,例如如果你的列的名称为col1....coln
,那么你可以调用clf.fit(df['col1'], df['coln'])
,假设col1和coln分别是你的X和y列
答案 1 :(得分:0)
将csv作为pandas DataFrame加载后,您可能希望将数据转换为矩阵格式。
csv_matrix = df.as_matrix()
例如,sklearn.linear_model.LinearRegression等几个模型需要矩阵格式的数据:http://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LinearRegression.html