title: Indexing and Data Columns in Pandas/PyTables
body: <p><a href="http://pandas.pydata.org/pandas-docs/stable/io.html#indexing">http://pandas.pydata.org/pandas-docs/stable/io.html#indexing</a></p>
  
  <p>I'm really confused about this concept of Data columns in Pandas HDF5 IO. Plus there's very little to no information about it to be found on googling it either. Since I'm diving into Pandas in a large project which involves HDF5 storage, I'd like to be clear about such concepts.</p>
  
  <p>The docs  say:</p>
  
  <blockquote>
    <p>You can designate (and index) certain columns that you want to be able
    to perform queries (other than the indexable columns, which you can
    always query). For instance say  you want to perform this common
    operation, on-disk, and return just the frame that matches this query.
    You can specify data_columns = True to force all columns to be
    data_columns</p>
  </blockquote>
  
  <p>This is confusing:</p>
  
  <ol>
  <li><p><code>other than the indexable columns, which you can always query</code>: What are 'indexable' columns? aren't all columns 'indexable'? What does this term mean?</p></li>
  <li><p><code>For instance say  you want to perform this common operation, on-disk, and return just the frame that matches this query.</code> How is that different from normal querying on a Pytable; with or without any indexes of <code>data_columns</code>?</p></li>
  <li><p>What is the fundamental difference between a non-indexed, indexed, and data_column column?</p></li>
  </ol>