pandas - 使用 pandas 进行 Postgres 查询 - 添加显式类型转换
问题描述
我正在尝试通过 pandas 连接查询 postgres 数据库,将查询作为字符串传递,如下所示:
import pandas.io.sql as psql
from sqlalchemy import create_engine
engine = create_engine('postgresql://username:password@localhost:5432/FAPESP-Covid19')
PacientesStat = psql.read_sql("SELECT CD_Municipio, Min(2021-aa_nasc), Max(2021-aa_nasc), Count(*) Tot\
FROM Pacientes\
GROUP BY 1\
ORDER BY 1 NULLS FIRST;", engine)
但我得到了错误:
LINE 1: SELECT CD_Municipio, Min(2021-aa_nasc), Max(2021-aa_nasc), C...
^
HINT: No operator matches the given name and argument types. You might need to add explicit type casts.
我看到 aa_nasc 列设置为 CHAR。
我如何在这里修复类型?
解决方案
以下工作:
UPDATE pacientes SET aa_nasc = NULL WHERE aa_nasc = 'AAAA' OR aa_nasc = 'YYYY';
ALTER TABLE pacientes ALTER COLUMN aa_nasc TYPE INT USING aa_nasc::integer;
推荐阅读
- c++ - Qlist Struct append 在 QT 4.8 发布模式下无法访问
- python - 更快的 RCNN 迁移学习 Keras
- python - 如何使父类对象引用子类?
- sql - 如果存在于另一列中,则获取数据
- tensorflow - 如何在 HuggingFace Transformers 库中获取中间层的预训练 BERT 模型输出?
- python - 如何合并字典列表?
- python-3.x - 一起使用套件设置和测试设置
- airflow - 我如何访问传递给气流 DAG 的参数
- python - 带有“大小”的 Pandas 数据透视表聚合给出错误“‘系列’对象没有属性‘列’”
- sql - SQL Server 中的微小整数空间分配