首页 > 解决方案 > 熊猫在使用 read_sql 时不假设 dtypes?

问题描述

我在 sql 中有一个表,我希望读入 pandas 数据框。我可以读取表格,但所有列 dtypes 都作为对象读取。当我将表写入 csv 然后使用 read_csv 重新读取时,假定正确的数据类型。显然,这个中间步骤效率低下,我只想能够直接从 sql 读取数据,并假设正确的数据类型。

我在 df 中有 650 列,因此显然无法手动指定数据类型。

标签: pythonsqlpandas

解决方案


所以原来数据库中的所有数据类型都定义为varchar。

似乎 read_sql 读取模式并基于此假设数据类型。奇怪的是,我无法使用 infer_objects() 转换这些数据类型。

唯一的方法是先写入 csv,然后使用 pd.read_csv() 读取 csv。


推荐阅读