mysql 和 pandas

pymsql and pandas

有问题。如何将 sql 查询中的列名称添加到 pandas 数据框。我正在做下一步,但 columns=columns 在我的情况下不起作用。

import pymssql
import pandas as pd


con = pymssql.connect(
     server="MSSQLSERVER",
     port="1433",
     user="us",
     password="pass",
     database="loc")

cur = conn.cursor()

cur.execute("SELECT id from ide")

data=cur.fetchall()

pandas=pd.DataFrame(data)

cur.close()
con.close()

所以当我打印 "pandas" 结果是没有 headers。那么我怎样才能收到它们呢?

首先建立连接:我看你用的是MSSQL

import pyodbc
# Parameters
server = 'server_name'
db = 'db_name'

# Create the connection
conn = pyodbc.connect('DRIVER={SQL Server};SERVER=' + server + ';DATABASE=' + db + ';Trusted_Connection=yes')

然后使用pandas:

df = pandas.read_sql(sql, conn)

我还发现添加 as_dict=True 到游标对象有效:

cur = conn.cursor(as_dict=True)

然后你可以 运行 剩下的:

cur.execute("SELECT id from ide")
data=cur.fetchall()
pandas=pd.DataFrame(data)

和pandas将从字典中获取列名