如何从.csv文件中拆分数据集以进行培训和测试?

Mid*_*idi 6 python csv split data-science

我正在使用Python,我需要将我的.csv导入数据分为两部分,一个是训练和测试集,EG 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 )
Run Code Online (Sandbox Code Playgroud)

TypeError: 'list' object is not callable

zip*_*ipa 15

你可以使用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]
Run Code Online (Sandbox Code Playgroud)

  • @DeepakChawla `train.to_csv('train.csv', index=False)` 与测试相同。 (2认同)

Fla*_*air 6

更好的做法,也许更随机的是使用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)]
Run Code Online (Sandbox Code Playgroud)


dr_*_*ych 5

您应该使用read_csv ()pandas 模块中的函数。它将所有数据直接读取到数据框中,您可以进一步使用它来将数据分解为训练和测试。同样,您可以使用train_test_split()scikit-learn 模块中的函数。