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

新手上路,请多包涵

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

TypeError: 'list' object is not callable

原文由 Midi 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1k
2 个回答

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

原文由 zipa 发布,翻译遵循 CC BY-SA 3.0 许可协议

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

原文由 Flair 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题