我正在使用 pandas.to_sql()
方法将 pandas Dataframe 写入到 redshift 数据库中:
from sqlalchemy import create_engine
import pandas as pd
conn = create_engine('postgresql://user:password@redshift-url.amazonaws.com:5439/db')
dataframe.to_sql('table_name', conn, index=False, if_exists='replace', schema='schema_name')
这个数据框中有一个名为timestamp
的列,格式是2020-03-02
,但是当我写入数据库时,它以varchar
的形式存储,因此无法将该列用于需要时间戳格式的图表绘制。
在使用pandas.to_sql()写入数据时,是否有一种方法可以定义列类型?我不想创建视图或从正在写入的表中创建另一个表,因为那样我就需要删除当前表格,因为另一个表格将与原始表格相关联,我会收到错误信息“无法删除表格,因为其他对象依赖于它”。
sqlalchemy.types
并将模式字典指定为dtype
传递给pd.to_sql
函数,参见此链接中的被接受的答案 - pandas to_sql all columns as nvarchar。请在此处查看支持的 sqlalchemy 类型 - https://github.com/zzzeek/sqlalchemy/blob/master/lib/sqlalchemy/types.py。 - tidakdiinginkan