我正在尝试使用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 代码中将字段类型指定为十进制?谢谢。