相关:pandas read_sql drops dot in column names
我使用pandas.read_sql从postgres数据库的sql查询创建数据帧。 一些列别名\名称使用混合大小写,我希望它传播到数据框。 但是,pandas(或下划线引擎 - 我所知道的SQLAlchemy)只返回小写字段名称。
有解决方法吗? (除了使用查找表并在之后修复值)
答案 0 :(得分:3)
Postgres将未加引号的列名称标准化为小写。如果你有这样一张桌子:
create table foo ("Id" integer, "PointInTime" timestamp);
PostgreSQL将遵守此案,但您必须指定引用的表名:
select "Id", "PointInTime" from foo;
更好的解决方案是添加列别名,例如:
select name as "Name", value as "Value" from parameters;
Postgres将返回正确的列名称。如果问题是SQLAlchemy或pandas,那么这还不够。