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将从字典中获取列名
有问题。如何将 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将从字典中获取列名