title: scikit-learn error: The least populated class in y has only 1 member
body: <p>I'm trying to split my dataset into a training and a test set by using the <a href="http://scikit-learn.org/stable/modules/generated/sklearn.model_selection.train_test_split.html" rel="noreferrer"><code>train_test_split</code></a> function from scikit-learn, but I'm getting this error:</p>
  
  <pre><code>In [1]: y.iloc[:,0].value_counts()
  Out[1]: 
  M2    38
  M1    35
  M4    29
  M5    15
  M0    15
  M3    15
  
  In [2]: xtrain, xtest, ytrain, ytest = train_test_split(X, y, test_size=1/3, random_state=85, stratify=y)
  Out[2]: 
  Traceback (most recent call last):
    File "run_ok.py", line 48, in &lt;module&gt;
      xtrain,xtest,ytrain,ytest = train_test_split(X,y,test_size=1/3,random_state=85,stratify=y)
    File "/home/aurora/.pyenv/versions/3.6.0/lib/python3.6/site-packages/sklearn/model_selection/_split.py", line 1700, in train_test_split
      train, test = next(cv.split(X=arrays[0], y=stratify))
    File "/home/aurora/.pyenv/versions/3.6.0/lib/python3.6/site-packages/sklearn/model_selection/_split.py", line 953, in split
      for train, test in self._iter_indices(X, y, groups):
    File "/home/aurora/.pyenv/versions/3.6.0/lib/python3.6/site-packages/sklearn/model_selection/_split.py", line 1259, in _iter_indices
      raise ValueError("The least populated class in y has only 1"
  ValueError: The least populated class in y has only 1 member, which is too few. The minimum number of groups for any class cannot be less than 2.
  </code></pre>
  
  <p>However, all classes have at least 15 samples. Why am I getting this error?    </p>
  
  <p>X is a pandas DataFrame which represents the data points, y is a pandas DataFrame with one column that contains the target variable.</p>
  
  <p>I cannot post the original data because it's proprietary, but it is fairly reproducible by creating a random pandas DataFrame (X) with 1k rows x 500 columns, and a random pandas DataFrame (y) with the same number of rows (1k) of X, and, for each row the target variable (a categorical label).
  The y pandas DataFrame should have different categorical labels (e.g. 'class1', 'class2'...) and each labels should have at least 15 occurrences.</p>