title: Importing data from a MySQL database into a Pandas data frame including column names
body: <p>I am importing data from a MySQL database into a Pandas data frame. The following excerpt is the code that I am using:</p>
  
  <pre><code>import mysql.connector as sql
  import pandas as pd
  
  db_connection = sql.connect(host='hostname', database='db_name', user='username', password='password')
  db_cursor = db_connection.cursor()
  db_cursor.execute('SELECT * FROM table_name')
  
  table_rows = db_cursor.fetchall()
  
  df = pd.DataFrame(table_rows)
  </code></pre>
  
  <p>When I print the data frame it does properly represent the data but my question is, is it possible to also keep the column names? Here is an example output:</p>
  
  <pre><code>                          0   1   2     3     4     5     6     7     8
  0  :ID[giA0CqQcx+(9kbuSKV== NaN NaN  None  None  None  None  None  None
  1  lXB+jIS)DN!CXmj&gt;0(P8^]== NaN NaN  None  None  None  None  None  None   
  2  lXB+jIS)DN!CXmj&gt;0(P8^]== NaN NaN  None  None  None  None  None  None   
  3  lXB+jIS)DN!CXmj&gt;0(P8^]== NaN NaN  None  None  None  None  None  None   
  4  lXB+jIS)DN!CXmj&gt;0(P8^]== NaN NaN  None  None  None  None  None  None   
  </code></pre>
  
  <p>What I would like to do is keep the column name, which would replace the pandas column indexes. For example, instead of having 0, the column name would be: "First_column" as in the MySQL table. Is there a good way to go about this? or is there a more efficient approach of importing data from MySQL into a Pandas data frame than mine?</p>