title: Enforcing data type while creating dataframe with known bad data
body: <p>I am trying to manipulate a simple csv file (from one of Stanford Uni Stats self-paced course). The dataset has an int type column which contains '*' when there is no data for the column. Is there a way to enforce datatype as I create the dataframe for this dataset? It seems that Python finds the * which not being an int errors out. My intent is to enforce int data type (either at dataframe creation time or later) so that I can do some descriptive stats on data as int)</p>
  
  <pre><code>df = pd.read_csv('drinking.csv', delimiter=',', header=1, error_bad_lines=False,
                   names=['Gender', 'Alcohol', 'Height', 'Cheat'], 
                   dtype={"Gender": str, "Alcohol": int, "Height": int, "Cheat": bool}, 
                   na_values=['*'], keep_default_na=False, usecols=['Alcohol'])
  </code></pre>
  
  <p>This code fails to accept the dtype. 'Alcohol' is int and when result frame has a * it fails
  ValueError: Integer column has NA values in column 1</p>
  
  <p>My point is that I should be able to enforce int data type at some stage, if not while creating dataframe, then some time before I want to call df.describe()</p>