在Python中,我能否像R的dataframe一样从SQL Server输出创建数组?

1 投票
1 回答
3201 浏览
提问于 2025-04-17 23:52

我对Python完全是个新手。通过pyodbc,我成功连接到了本地运行的SQL Server Express 2008 R2实例。请问我该如何创建一个类似于R中数据框的数组呢?

在R中使用RODBC时,我可以很轻松地直接获取数据到一个数据框里。例如,如果我提取一个有5列5行的表格,我就能把数据放进一个有5列5行的数据框里。

而使用pyodbc时,我获取的数据看起来是所有单元格连续排列的,像这样:

[('2013 Q4', 'An', 'Ta', 'Mono', 'Consumer', 'Europe', '2014 Q3', '2014', 'Q3', 'Transfer', 1.0), ('2013 Q4', 'An', 'Ta', 'Mono', 'Consumer', 'Europe', '2014 Q4', '2014', 'Q4', 'Transfer', 1.0)]

这是我在Python 2.7.3中使用的代码:

    cursor.execute("""select * 
            from table1
            """)
    row = cursor.fetchall()
    print row

有没有人能给我推荐一些在线参考资料?(我在谷歌上找不到相关信息。)用Python实现我想要的功能真的可能吗?在R中,从SQL表读取数据非常简单。我感觉我得用Python处理每一行提取的数据???

1 个回答

0

最好的方法是使用pandas这个库,特别是pandas.is.sql.read_sql这个功能。

import pyodbc
import pandas as ps

SQL_Connection = pyodbc.connect( INSERT SQL CONNECTION SETTINGS HERE)
cursor = SQLconnection.cursor()

SQL_Script = "Select * from table1"

df = ps.io.sql.read_sql(SQL_Script, SQL_Connection)
SQL_Connection.close()
print df

撰写回答