我正在将数据从 MySQL 数据库导入到 Pandas 数据框中。以下摘录是我正在使用的代码:
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)
当我打印数据框时,它确实正确地表示了数据,但我的问题是,是否也可以保留列名称?这是一个示例输出:
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
我想做的是保留列名称,它将替换 pandas 列索引。例如,列名不是 0,而是:“First_column”(如 MySQL 表中所示)。有什么好的方法可以解决这个问题吗?或者是否有比我更有效的方法将数据从 MySQL 导入到 Pandas 数据框架中?
IMO 使用 pandas 从 MySQL 服务器读取数据会更有效:
from sqlalchemy import create_engine
import pandas as pd
db_connection_str = 'mysql+pymysql://mysql_user:mysql_password@mysql_host/mysql_db'
db_connection = create_engine(db_connection_str)
df = pd.read_sql('SELECT * FROM table_name', con=db_connection)
这还应该照顾列名......
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)