我有一个相当大的 CSV 文件,其中包含我读入熊猫数据框的亚马逊评论数据。我想将数据拆分为 80-20(train-test),但这样做时我想确保拆分数据按比例表示一列(类别)的值,即所有不同类别的评论都存在于火车中并按比例测试数据。
数据如下所示:
**ReviewerID** **ReviewText** **Categories** **ProductId**
1212 good product Mobile 14444425
1233 will buy again drugs 324532
5432 not recomended dvd 789654123
我使用以下代码这样做:
import pandas as pd
Meta = pd.read_csv('C:\\Users\\xyz\\Desktop\\WM Project\\Joined.csv')
import numpy as np
from sklearn.cross_validation import train_test_split
train, test = train_test_split(Meta.categories, test_size = 0.2, stratify=y)
它给出了以下错误
NameError: name 'y' is not defined
由于我对 python 比较陌生,我无法弄清楚我做错了什么,或者这段代码是否会根据列类别进行分层。当我从训练测试拆分中删除分层选项以及类别列时,它似乎工作正常。
任何帮助将不胜感激。