title: How to use string as column name in pandas dataframe
body: <p>I've got an excel workbook that I am reading data from and and doing things with. In the excel workbook, some of the column headers are numbers and I don't know how to use them in pandas. I am also not allowed to change the column titles in excel (for the purposes of this project).</p>
  
  <p>In this case, the column headers are all the same (ex: 2008, 2008, and 2008) and are all numbers. This makes sense in the context of my project but is confusing to pandas and to me. They are distinguished because the row above them in the excel workbook has more info.</p>
  
  <pre><code>filename = 'myfile.xlsx'
  data = pd.read_excel(myfile, skiprows=8)
  
  print("Column Headings")
  print(data.columns)
  </code></pre>
  
  <p>Results of printing the column headers (shortened list):</p>
  
  <pre><code>Index([2008, '2008.1', '2008.2'], dtype='object')
  </code></pre>
  
  <p>Now I need to use these column names to get at the data in those columns...</p>
  
  <pre><code>provider_name = 'example_name'
  subset_by_provider = data.loc[data['Provider'] == provider_name]
  
  #the error is here. 2008 is the column name
  data_2008 = subset_by_provider.2008.tolist() 
  </code></pre>
  
  <p>As I indicated above, the error is in the last line of code. I am reading the data into a list. 2008 (as an integer) and '2008.1' are names of the columns in my excel sheet. But I get a syntax error. </p>
  
  <pre><code>#Doesn't work
  data_2008 = subset_by_provider.2008.tolist()
  
  #Doesn't work
  data_2008 = subset_by_provider.'2008.1'.tolist()
  
  #Does work
  data_2008 = subset_by_provider.i2008.tolist()
  </code></pre>
  
  <p>In the 2nd line, I changed the column name in the excel sheet from 2008 to i2008, just to prove a point. However, in practice, I am not allowed to do this.</p>
  
  <p>How can I read the column name 2008 or '2008.1'?</p>