склеарная стратифицированная выборка на основе столбца

У меня есть довольно большой 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, я не могу понять, что я делаю неправильно или будет ли этот код разделяться по категориям столбцов. Кажется, это работает нормально, когда я удаляю опцию стратификации, а также столбец категорий из разделения на поезд-тест.

Любая помощь будет оценена.

Ответы на вопрос(2)

Ваш ответ на вопрос