0

我正在尝试使用read_sql_query()从 MySQL 数据库读取查询,数据库中的字段之一,它的类型是decimal(28,5),我想使用dtype=参数来完全控制数据类型,但似乎熊猫无法识别Decimal类型:

from decimal import *

dtypes = {
        'id': 'Int64',
        'date': 'datetime64',
        'value': Decimal
    }

df = pd.read_sql_query(sql_query, mysql_engine, dtype=dtypes, coerce_float=False)

这会给我一个错误TypeError: dtype '<class 'decimal.Decimal'>' not understood

因此,如果我不指定字段的类型value

dtypes = {
        'id': 'Int64',
        'date': 'datetime64'
    }

df = pd.read_sql_query(sql_query, mysql_engine, dtype=dtypes, coerce_float=False)

这很好用,如果我打印出数据类型print(type(df['value'][0])),这会告诉我<class 'decimal.Decimal'>,但是有没有办法可以value在 Python 代码中将字段类型指定为十进制?谢谢。

4

0 回答 0