如何使pandas.read_sql()不能将所有标头都转换为小写 [英] how to make pandas.read_sql() not convert all headers to lower case
问题描述
我有一个函数,可以将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屋!