склеарная стратифицированная выборка на основе столбца
У меня есть довольно большой CSV-файл, содержащий данные обзора Amazon, которые я читаю во фрейм данных pandas. Я хочу разделить данные 80-20 (поезд-тест), но при этом я хочу убедиться, что данные разделения пропорционально представляют значения одного столбца (Категории), т.е. все разные категории обзоров присутствуют как в поезде и проверить данные пропорционально.
Данные выглядят так:
**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, я не могу понять, что я делаю неправильно или будет ли этот код разделяться по категориям столбцов. Кажется, это работает нормально, когда я удаляю опцию стратификации, а также столбец категорий из разделения на поезд-тест.
Любая помощь будет оценена.