我在sql中有一个表,我想读取到pandas数据帧中。我可以读入表,但所有列的数据类型都作为对象读入。当我将表写入csv,然后使用read_csv重新读取时,假设数据类型正确。显然,这个中间步骤效率很低,我只想能够在假设正确数据类型的情况下直接从sql中读取数据。
我在df中有650列,所以显然手动指定数据类型是不可能的。
因此,数据库中的所有数据类型都定义为varchar。
read_sql似乎读取了模式,并基于此假定数据类型。奇怪的是,我无法使用infer_objects((转换这些数据类型。
唯一的方法是写入csv,然后使用pd.read_csv((读取csv。
不,并没有真正检查元数据。
默认情况下,每个熊猫的文档数据类型都是推断出来的,而其他类型则是根据需要启用的(例如,日期格式需要额外的指导(。
因此,裸pd.read_sql
不是完全健壮的,但可能适用于您的特定数据。
在我的Postgres上,这看起来像
column_name postgres pandas
patient_id character varying object
spell_id character varying object
spell_start_date date object
spell_start_time time without time zone object
spell_end_date date object
spell_end_time time without time zone object