我有一个pandas数据帧,它看起来像这样:
A B C D
80.00 2020-03-07 19:36:50 testing approved
80.00 2020-03-07 19:46:50 testing approved
我已经成功地将这个熊猫数据帧写入数据库,如下所示:
conn = create_engine('postgresql://username:password@redshift-blablabla.eu-west-1.redshift.amazonaws.com:5439/database_name')
dataframe.to_sql('table_name', conn,index=False, if_exists='replace')
当我尝试使用此表作为源来可视化Superset中的数据时,我注意到所有内容都存储为varchar,并且我不能使用列B
作为日期戳来序列化数据。
写入数据库时如何定义列类型?日期戳应该只有日期而没有小时才能作为日期戳有效吗?
谢谢你的帮助。
to_sql有一个参数dtype,通过该参数,您可以将单个列的数据类型作为字典提供,或将所有列同时作为标量提供。你试过了吗?
dtype:dict或标量,可选
指定列的数据类型。如果使用字典,键应该是列名,值应该是sqlite3遗留模式的SQLAlchemy类型或字符串。如果提供了标量,它将应用于所有列。