一尘不染

如何使pandas.read_sql()不能将所有标头都转换为小写

sql

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

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

任何人都有一个想法如何使pandas.read_sql保持原始大小写?


阅读 236

收藏
2021-05-16

共1个答案

一尘不染

我认为PyPyODBC为您做到了:

这是我在PyPyODBCver的源代码中找到的。1.3.3行:28-29:

version = '1.3.3'
lowercase=True

和1771-1772行:

        if lowercase:
            col_name = col_name.lower()

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

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