【问题标题】:Read data from SQL Server to pandas using pyodbc使用 pyodbc 从 SQL Server 读取数据到 pandas
【发布时间】:2021-03-12 10:14:46
【问题描述】:

我正在尝试将 Pandas 中的 SQL 服务器数据作为数据框导入。我目前有以下代码:

import pandas as pd
import pyodbc

# SQL Authentication
conn = pyodbc.connect(
        'Driver={SQL Server};'
        'Server=Servername;'
        'Database=DBName;'
        'UID=logIn;'
        'PWD=Password;')
    
cursor = conn.cursor()
    
cursor.execute('SELECT * FROM Table')
    
result = cursor.fetchall()
     
cursor.close()
print(result)

这会返回数据,但格式如下:

[(24609189, 'EURTRY.pro', Decimal('5'), Decimal('11'), Decimal('5.0000'), Decimal('105.0000'), Decimal('-2.200000'), Decimal('0.000000'), datetime.datetime(2018, 10, 15, 16, 47, 17, 800000), None)]

我怎样才能将它放入数据框中,有没有办法删除数字前面的Decimal

【问题讨论】:

  • 你尝试过原生pandas方法pd.read_sql("SELECT * FROM schema.Table", conn)

标签: python sql sql-server pandas


【解决方案1】:

您应该可以直接使用 Pandas 的 read_sql() 执行此操作:

import pandas as pd
import pyodbc

# SQL Authentication
conn = pyodbc.connect(
        'Driver={SQL Server};'
        'Server=Servername;'
        'Database=DBName;'
        'UID=logIn;'
        'PWD=Password;') 

sql = 'SELECT * FROM Table'
data = pd.read_sql(sql,conn)

【讨论】:

  • 非常感谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-10-28
  • 1970-01-01
  • 2023-04-04
  • 1970-01-01
  • 2020-07-08
  • 2014-12-02
相关资源
最近更新 更多