如何使pandas.read_sql()不能将所有标头都转换为小写 [英] how to make pandas.read_sql() not convert all headers to lower case

查看:491
本文介绍了如何使pandas.read_sql()不能将所有标头都转换为小写的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个函数,可以将SQL服务器中的表中的表拉入Python中的数据框,但是它会强制所有列标题都使用小写.代码如下:

I have a function that pulls tables from our a table in our SQL server into a dataframe in Python, but it forces all the column headers to be lower case. The code is as follows:

connection = pypyodbc.connect('Driver={SQL Server};'
                              'Server='   + server   + ';'
                              'Database=' + database + ';'
                              'uid='      + username + ';'
                              'pwd='      + password + ';')
query = 'SELECT * FROM ' + tableName

#set dict value to dataframe imported from SQL
tableDict[tableName] = pd.read_sql(query, connection)

SQL中的标头例如:pmiManufacturingHeadline_Level 它在我的熊猫数据框中显示为:pmimanufacturingheadline_level

The headers in SQL are for example: pmiManufacturingHeadline_Level It shows up in my pandas dataframe as: pmimanufacturingheadline_level

有人知道如何使pandas.read_sql保持原始大小写吗?

Anyone have an idea how to make pandas.read_sql keep the original capitalization?

推荐答案

我认为PyPyODBC为您做到了:

I think PyPyODBC does it for you:

这是我在PyPyODBC ver.的源代码中找到的内容. 1.3.3行:28-29:

Here what i found in the source code of PyPyODBC ver. 1.3.3 lines: 28-29:

version = '1.3.3'
lowercase=True

和第1771-1772行:

and lines 1771-1772:

        if lowercase:
            col_name = col_name.lower()

因此您可以根据需要更改行为:

so you can change the behaviour if you want:

import pypyodbc
pypyodbc.lowercase = False  # force the ODBC driver to use case-sensitive column names

这篇关于如何使pandas.read_sql()不能将所有标头都转换为小写的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆