如何将数据集从.CSV文件中拆分进行培训和测试



我正在使用python,我需要将.csv导入的数据分为两个部分,一个培训和测试集,例如70%的培训和30%的测试。

我不断遇到各种错误,例如'list' object is not callable等。

有什么简单的方法吗?

谢谢

编辑:

代码是基本的,我只是想拆分数据集。

from csv import reader
with open('C:/Dataset.csv', 'r') as f:
    data = list(reader(f)) #Imports the CSV
    data[0:1] ( data )

TypeError: 'list' object is not callable

您可以使用pandas

import pandas as pd
import numpy as np
df = pd.read_csv('C:/Dataset.csv')
df['split'] = np.random.randn(df.shape[0], 1)
msk = np.random.rand(len(df)) <= 0.7
train = df[msk]
test = df[~msk]

更好的练习,也许更多随机的是使用 df.sample

from numpy.random import RandomState
import pandas as pd
df = pd.read_csv('C:/Dataset.csv')
rng = RandomState()
train = df.sample(frac=0.7, random_state=rng)
test = df.loc[~df.index.isin(train.index)]

您应该使用PANDAS模块的read_csv ()函数。它将所有数据直接读取到数据框架中,您可以进一步将数据将数据分解为火车和测试。同样,您可以从Scikit-Learn模块中使用train_test_split()函数。

最新更新