从 Microsoft SQL 查询到 Pandas Dataframe

2024-01-21

我正在尝试用 Python3 编写一个程序,它将在 Microsoft SQL 中的表上运行查询并将结果放入 Pandas DataFrame 中。

我的第一次尝试是下面的代码,但由于某种原因,我不明白这些列没有按照我在查询中运行它们的顺序出现,它们出现的顺序以及它们作为结果更改而给出的标签,塞满我的程序的其余部分:

 import pandas as pd, pyodbc    

    result_port_mapl = []

    # Use pyodbc to connect to SQL Database
    con_string = 'DRIVER={SQL Server};SERVER='+ <server> +';DATABASE=' + 
<database>


     cnxn = pyodbc.connect(con_string)
    cursor = cnxn.cursor()

    # Run SQL Query
    cursor.execute("""
                   SELECT <field1>, <field2>, <field3>
                   FROM result
                   """)

    # Put data into a list
    for row in cursor.fetchall():
        temp_list = [row[2], row[1], row[0]]
        result_port_mapl.append(temp_list)

    # Make list of results into dataframe with column names
    ## FOR SOME REASON HERE row[1] AND row[0] DO NOT CONSISTENTLY APPEAR IN THE 
    ## SAME ORDER AND SO THEY ARE MISLABELLED
    result_port_map = pd.DataFrame(result_port_mapl, columns={'<field1>', '<field2>', '<field3>'})

我也尝试过以下代码

    import pandas as pd, pyodbc

    # Use pyodbc to connect to SQL Database
    con_string = 'DRIVER={SQL Server};SERVER='+ <server> +';DATABASE=' + <database>
    cnxn = pyodbc.connect(con_string)
    cursor = cnxn.cursor()

    # Run SQL Query
    cursor.execute("""
                   SELECT <field1>, <field2>, <field3>
                   FROM result
                   """)

    # Put data into DataFrame
    # This becomes one column with a list in it with the three columns 
    # divided by a comma
    result_port_map = pd.DataFrame(cursor.fetchall())

    # Get column headers
    # This gives the error "AttributeError: 'pyodbc.Cursor' object has no 
    # attribute 'keys'"
    result_port_map.columns = cursor.keys()

如果有人能提出为什么会发生这些错误或提供更有效的方法来实现这一点,我们将不胜感激。

Thanks


如果你只使用read_sql?喜欢:

import pandas as pd, pyodbc    
con_string = 'DRIVER={SQL Server};SERVER='+ <server> +';DATABASE=' + <database>
cnxn = pyodbc.connect(con_string)
query = """
  SELECT <field1>, <field2>, <field3>
  FROM result
"""
result_port_map = pd.read_sql(query, cnxn)
result_port_map.columns.tolist()
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从 Microsoft SQL 查询到 Pandas Dataframe 的相关文章

随机推荐

  • CSS3 中的滑动动画

    我目前正在开发一个用 HTML 5 CSS3 和 jQuery 编写的移动应用程序框架 对于 屏幕 的标记 我有以下布局 div class page div div class page div 我目前正在使用 jQuery 来检测第一个
  • 使用 pandas xlsxwriter 模块使用条件格式格式化整行

    我正在使用 pandas xlsxwriter 模块创建 Excel 报告 下面是相同的代码片段 number rows len df index df is dataframe writer pd ExcelWriter Report 1
  • Files#delete(Path) 和 File#delete() 之间的区别

    我正在使用带有 java 7 update 6 的 Windows 7 并发现这种奇怪的 至少对我来说 行为 我有两个文件E delete1 txt and E delete2 txt两者都是只读文件 当我尝试删除如下文件时 它会被删除而没
  • 从年月(yyyy-MM)到年月(yyyy-MMMM)[重复]

    这个问题在这里已经有答案了 我有一个变量 YearMonth date 里面站立的地方 2016 07 例如 我希望它仍然是 YearMonth 但是 2016 july 注意 没有 分隔符 或者更好的是 2016 luglio 即意大利语
  • 我可以使用 firebase 作为 flutter 桌面应用程序的后端吗?如果是这样怎么办?

    我正在使用 flutter 构建一个桌面应用程序 我可以使用 firebase 作为后端吗 如果是这样怎么办 如果您查看 Firebase 文档可用的插件 https firebase google com docs flutter set
  • 将支持 bean 作为参数传递给 Facelet include

    我有一个可以在不同应用程序中使用的 Facelet 我不是要复制它 而是重复使用它 我需要传递将管理视图的支持 bean 作为参数 因为某些逻辑可能会根据使用它的应用程序而有所不同 我不想使用复合组件 而只是包含 Facelet 并指定哪个
  • Dojo,如何在 DIV 上执行 onclick 事件

    互联网上有一个淡出示例 http docs dojocampus org dojo fadeOut t tundra http docs dojocampus org dojo fadeOut t tundra 但我想做一些不同的事情 我希
  • 返回 PHP 多维数组中最后一个数组的元素

    如何在 PHP 中动态显示最后一个数组中的元素 例如 Array 0 gt Array id gt 6 user id gt 8 category path gt Sport 1 gt Array id gt 8 user id gt 8
  • syscall_thread_switch iOS 8.3 竞赛 - CocoaLumberjack bug?如何调试这个?

    我在我的应用程序中遇到了竞争条件 每当我暂停调试时 所有或除 1 个线程之外的所有线程都会卡在 syscall thread switch 上 它在模拟器上重现得更频繁 在 iPad Air 上也是如此 CocoaLumberjack 的
  • 从 Hibernate 4.3.6 迁移到 Hibernate 5

    我有一个旧项目 我使用 Java API 中的 Date 我想将其更改为新的 Java 8 Date APILocalDateTime 我读到 Hibernate 5 之前的版本不支持新的 Java 8 Date API 我决定从 Hibe
  • 原生 Vim 随机数脚本

    我知道有多种方法可以获取随机数 例如从 shell 中 然而 我在 Android 手机上运行 vim 几乎没有编译 而且 它不必是严格随机的 关键是 在 Vim 中获取一系列相当好的随机数的有趣 简洁 快速 即使用 vim 原生函数 或简
  • MS Access 2010 运行时 - 连续形式中缺少鼠标右键单击上下文菜单

    我在 MS Access 2003 中编写了一个应用程序 我可以使用 Access 2010 运行该应用程序 但是当我仅使用 MS Access 2010 运行时打开同一个 2003 应用程序时 我无法再以连续形式使用鼠标右键单击 因为我可
  • 向下转型最佳实践 (C++)

    静态代码分析工具往往会大量谈论 将基类向下转换为派生类 我还发现了一些编码标准指南 其中提到不要这样做 所以我想知道什么是最佳实践方法 这是我的用例 我有一个 Base 接口 DerivedA DerivedB 类 然后是一个包含 Base
  • 如何在codeigniter中使用pdo?

    据我所知 PDO 支持最近已添加到 codeigniter 但我找不到任何有关如何实际使用它的文档或教程 谁能告诉我如何使用它 您可以编辑 application config database php并启用 PDO 驱动程序 db def
  • Java中Float的最大值?

    下列question https stackoverflow com questions 3884793 minimum values and double min value in java表示 Double 的最小值是 Double M
  • QEMU和KVM在虚拟机I/O中扮演什么角色?

    我发现 QEMU 和 KVM 之间的界限非常模糊 我发现有人说虚拟机是qemu进程 而另一些人说是kvm进程 究竟是什么 而QEMU和KVM在虚拟机I O中扮演什么角色呢 比如一个vm做PIO MMIO的时候 是qemu还是kvm会把它困住
  • matplotlib:同一张图上有2个不同的图例

    我有一个图 其中不同的颜色用于不同的参数 不同的线条样式用于不同的算法 目的是比较使用相似参数执行的不同算法的结果 这意味着我总共使用了 4 种不同的颜色和 3 种不同的线条样式 在同一张图表上总共使用了 12 个图 我实际上是根据颜色构建
  • 带有 CSS 波浪的动画文本

    怎么运行的 The png下面显示的图像被剪辑到带有动画的文本中 行动中 body background 000000 Wave Loader text transform uppercase font family Cabin Conde
  • 如何通过 SSH 协议克隆 Github Gist?

    Github 似乎确实希望我们使用 HTTPS 协议来使用 Gists 例如 他们只在 Gist 页面上列出 HTTPS url 例如https gist github com donatello 5834862 https gist gi
  • 从 Microsoft SQL 查询到 Pandas Dataframe

    我正在尝试用 Python3 编写一个程序 它将在 Microsoft SQL 中的表上运行查询并将结果放入 Pandas DataFrame 中 我的第一次尝试是下面的代码 但由于某种原因 我不明白这些列没有按照我在查询中运行它们的顺序出