我正在将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可以被替换为"MySQL"表中的"First_column"列名。有没有好的方法来实现这个?或者是否有比我更有效的方法将数据从MySQL导入到Pandas数据框中?
pd.read_sql()
不支持MySQL连接。这个问题不应该被标记为重复。要回答这个查询:df = pd.DataFrame(table_rows, columns=db_cursor.column_names)
将会执行所需的操作。 - kneewarp