【问题标题】:pymsql and pandasmysql和熊猫
【发布时间】:2016-07-13 13:32:41
【问题描述】:

有一个问题。如何将 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”时,结果是没有标题。那么如何接收呢?

【问题讨论】:

标签: python sql pandas pymssql


【解决方案1】:

我还发现将 as_dict=True 添加到光标对象的工作原理:

cur = conn.cursor(as_dict=True)

然后你就可以运行剩下的了:

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

pandas 会从字典中获取列名

【讨论】:

  • 哪个更好? pymssql 还是 pyodbc?使用pyodbc,通过AWS Lambda使用时发现了很多困难。
【解决方案2】:

首先建立连接:我看到你用的是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')

然后使用熊猫:

df = pandas.read_sql(sql, conn)

【讨论】:

    猜你喜欢
    • 2013-09-26
    • 2014-01-07
    • 2018-05-07
    • 2021-06-16
    • 2013-10-24
    • 2021-02-07
    • 2021-12-15
    • 2016-03-30
    • 2016-07-03
    相关资源
    最近更新 更多