从 pd.read_sql 输出附加到 Pandas 数据帧

Cli*_*ers 7 python pyodbc dataframe pandas

我来自 R,但由于各种原因需要在 Python 中执行此操作。这很可能是我的 Python 的基本 PEBKAC 问题,而不是 Pandas、PyODBC 或其他任何东西。

请多多包涵。

我当前的 Python 3 代码:

import pandas as pd
import pyodbc 
cnxn = pyodbc.connect(DSN="databasename", uid = "username", pwd = "password")

querystring = 'select order_number, creation_date from table_name where order_number = ?'

orders = ['1234',
'2345',
'3456',
'5678']

for i in orders:
   print(pd.read_sql(querystring, cnxn, params = [i]))
Run Code Online (Sandbox Code Playgroud)

我需要的是一个列名为“order_number”和“creation_date”的数据框。

代码输出的是: 在此处输入图片说明

抱歉截屏,无法在此处获取格式。

阅读dataframe.append page 后,我尝试了这个:

df = pd.DataFrame()

for i in orders:
       df.append(pd.read_sql(querystring, cnxn, params = [i]))
Run Code Online (Sandbox Code Playgroud)

这似乎运行良好(无论如何都没有抛出错误)。

但是当我尝试输出 df 时,我得到

Empty DataFrame
Columns: []
Index: []
Run Code Online (Sandbox Code Playgroud)

因此,肯定可以使用列表(或元组、字典、ymmv)中的参数执行 pd.read_sql 并将这些结果作为行添加到 pd.DataFrame() 中。

但是,我的堆栈搜索、谷歌搜索或 Python 总体上都失败了(这三者都有明显的可能性)。

这里的任何指导将不胜感激。

Ran*_*tch 5

怎么样

for i in orders: df = df.append(pd.read_sql(querystring, cnxn, params = [i]))