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.