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

t5zmwmid  于 7个月前  发布在  其他
关注(0)|答案(4)|浏览(109)

我正在使用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

bxjv4tth

bxjv4tth1#

可以使用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]

字符串

cwdobuhd

cwdobuhd2#

更好的做法,也许更随机的是使用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)]

字符串

5t7ly7z5

5t7ly7z53#

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

aij0ehis

aij0ehis4#

你应该使用sklearn.model_selection.train_test_split作为它的分割数据集的最佳目的下面我给代码使用它
`

import pandas as pd
from sklearn.model_selection import train_test_split

data = pd.read_csv('C:/Dataset.csv')
x_train,x_test,y_train,y_test = train_test_split(data["qus"], 
data["ans"],test_size = 0.3)

train_data = pd.concat([x_train , y_train], axis = 1)
test_data = pd.concat([x_train , y_train], axis = 1)
train_data.head()

字符串
`
假设您的CSV包含2列,一列用于问题,另一列用于答案

相关问题