如何从 .csv 文件中拆分数据集以进行训练和测试?
How can I split a Dataset from a .csv file for Training and Testing?
我正在使用 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 模块中的 read_csv ()
函数。它将您的所有数据直接读入数据框,您可以进一步使用它来将数据分解为训练和测试。同样,您可以使用 scikit-learn 模块中的 train_test_split()
函数。
您可以使用 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)]
我正在使用 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 模块中的 read_csv ()
函数。它将您的所有数据直接读入数据框,您可以进一步使用它来将数据分解为训练和测试。同样,您可以使用 scikit-learn 模块中的 train_test_split()
函数。
您可以使用 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)]