Back

Explore Courses Blog Tutorials Interview Questions
0 votes
2 views
in Data Science by (17.6k points)

I am importing data from a MySQL database into a Pandas data frame. The following excerpt is the code that I am using:

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)

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:

                          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>0(P8^]== NaN NaN  None  None  None  None  None  None   

2  lXB+jIS)DN!CXmj>0(P8^]== NaN NaN  None  None  None  None  None  None   

3  lXB+jIS)DN!CXmj>0(P8^]== NaN NaN  None  None  None  None  None  None   

4  lXB+jIS)DN!CXmj>0(P8^]== NaN NaN  None  None  None  None  None  None   

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?

1 Answer

0 votes
by (41.4k points)
edited by

Use pandas for reading data from your MySQL server because it would be much more efficient:

df = pd.read_sql('SELECT * FROM table_name', con=db_connection)

If you want to learn Data Science then watch this video on Data Science for beginners.

Browse Categories

...