title: Excel file and DataFrame No numeric data to plot error
body: <p>I'm trying to plot data read into Pandas from a xlsx file. After some minor formatting and data quality checks, I try to plot using matplotlib but get the following error:</p>
  
  <pre><code>TypeError: Empty 'DataFrame': no numeric data to plot
  </code></pre>
  
  <p>This is not a new issue and I have followed many of the pages on this site dealing with this very problem. The posted suggestions, unfortunately, have not worked for me. </p>
  
  <p>My data set includes strings (locations of sampling sites and limited to the first column), dates (which I have converted to the correct format using <code>pd.to_datetime</code>), many <code>NaN</code> entries (that cannot be converted to zeros due to the graphical analysis we are doing), and column headings representing various analytical parameters.</p>
  
  <p>As per some of the suggestions I read on this site, I have tried the following code</p>
  
  <ol>
  <li><p><code>df = df.astype(float)</code> which gives me the following error <code>ValueError: could not convert string to float: 'Site 1'</code> (Site 1 is a sampling location)</p></li>
  <li><p><code>df = df.apply(pd.to_numeric, errors='ignore')</code> which gives me the following: <code>dtypes: float64(13), int64(1), object(65)</code> and therefore does not appear to work as most of the data remains as an object. The date entries are the int64 and I cannot figure out why some of the data columns are float64 and some remain as objects</p></li>
  <li><p><code>df = df.apply(pd.to_numeric, errors='coerce')</code> which deletes the entire DataFrame, possibly because this operation fills the entire DataFrame with <code>NaN</code>?</p></li>
  </ol>
  
  <p>I'm stuck and would appreciate any insight.</p>
  
  <p>EDIT</p>
  
  <p>I was able to solve my own question based on some of the feedback. Here is what worked for me:</p>
  
  <pre><code>df = "path"
  
  header = [0]    # keep column headings as first row of original data
  skip = [1]      # skip second row, which has units of measure
  na_val = ['.','-.','-+0.01']    # Convert spurious decimal points that have 
                                  # no number associated with them to NaN
  convert = {col: float for col in (4,...,80)}   # Convert specific rows to 
                                                 # float from original text
  parse_col = ("A","C","E:CC")    # apply to specific columns 
  
  df = pd.read_excel(df, header = header, skiprows = skip, 
  na_values = na_val, converters = convert, parse_columns = parse_col)
  </code></pre>