sklearn muestreo estratificado basado en una columna

Tengo un archivo CSV bastante grande que contiene datos de revisión de Amazon que leí en un marco de datos de pandas. Quiero dividir los datos 80-20 (prueba de tren) pero al hacerlo quiero asegurarme de que los datos divididos representen proporcionalmente los valores de una columna (Categorías), es decir, todas las diferentes categorías de revisiones están presentes tanto en el tren y datos de prueba proporcionalmente.

Los datos se ven así:

**ReviewerID**       **ReviewText**        **Categories**       **ProductId**

1212                   good product         Mobile               14444425
1233                   will buy again       drugs                324532
5432                   not recomended       dvd                  789654123 

Estoy usando el siguiente código para hacerlo:

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)

da el siguiente error

NameError: name 'y' is not defined

Como soy relativamente nuevo en Python, no puedo entender qué estoy haciendo mal o si este código se estratificará según las categorías de columna. Parece que funciona bien cuando elimino la opción de estratificación, así como la columna de categorías de la división de prueba de tren.

Cualquier ayuda será apreciada.

Respuestas a la pregunta(2)

Su respuesta a la pregunta