title: ValueError: could not convert string to float: med
body: <p>I am writing a very simple script. All I have to do is read data using panda and then train a decision tree on data. Data that I am using is:</p>
  
  <pre><code>https://archive.ics.uci.edu/ml/machine-learning-databases/car/car.data
  </code></pre>
  
  <p>And following is my script</p>
  
  <pre><code>import numpy as np
  from sklearn.cross_validation import train_test_split
  from sklearn.tree import DecisionTreeClassifier
  from sklearn.metrics import accuracy_score
  from sklearn import tree
  from sklearn import preprocessing
  import pandas as pd
  balance_data=pd.read_csv("https://archive.ics.uci.edu/ml/machine-learning-databases/car/car.data",
                             sep= ',', header= None)
  #print "Dataset:: "
  
  #df1.head()
  
  X = balance_data.values[:, 0:5]
  Y = balance_data.values[:,6]
  X_train, X_test, y_train, y_test = train_test_split( X, Y, test_size = 0.2, random_state = 100)
  clf_gini = DecisionTreeClassifier(criterion = "gini", random_state = 100,
                                 max_depth=3, min_samples_leaf=5)
  
  clf_gini.fit(X_train, y_train)
  </code></pre>
  
  <p>From the error I am guessing that it couldn't convert "med" attribute value to float. And by looking at the data my random guess is that low has a space before it and med doesn't. That is why it is getting confused. But I am not sure of it. Please tell what could be wrong with it. 
  PS: error is occurring at the last line and here is the traceback</p>
  
  <pre><code>ValueError                                Traceback (most recent call last)
  &lt;ipython-input-26-b495e5f26174&gt; in &lt;module&gt;()
       18                                max_depth=3, min_samples_leaf=5)
       19 X_train[X_train != '']
  ---&gt; 20 clf_gini.fit(X_train, y_train)
  
  /home/fatima/anaconda2/lib/python2.7/site-packages/sklearn/tree/tree.pyc in fit(self, X, y, sample_weight, check_input, X_idx_sorted)
      788             sample_weight=sample_weight,
      789             check_input=check_input,
  --&gt; 790             X_idx_sorted=X_idx_sorted)
      791         return self
      792 
  
  /home/fatima/anaconda2/lib/python2.7/site-packages/sklearn/tree/tree.pyc in fit(self, X, y, sample_weight, check_input, X_idx_sorted)
      114         random_state = check_random_state(self.random_state)
      115         if check_input:
  --&gt; 116             X = check_array(X, dtype=DTYPE, accept_sparse="csc")
      117             y = check_array(y, ensure_2d=False, dtype=None)
      118             if issparse(X):
  
  /home/fatima/anaconda2/lib/python2.7/site-packages/sklearn/utils/validation.pyc in check_array(array, accept_sparse, dtype, order, copy, force_all_finite, ensure_2d, allow_nd, ensure_min_samples, ensure_min_features, warn_on_dtype, estimator)
      400                                       force_all_finite)
      401     else:
  --&gt; 402         array = np.array(array, dtype=dtype, order=order, copy=copy)
      403 
      404         if ensure_2d:
  
  ValueError: could not convert string to float: med
  </code></pre>