我试图从使用db2的数据表中读取数据表。然而,似乎小数被简单地忽略了,而浮点数以某种方式乘以100
。例如,100.50
在读入pandas数据帧时变成{
顺便说一句,我来自挪威,所以小数用a ,
而不是.
来表示。我不知道这是否重要。在
我使用以下SQL(在WinSQL Lite中):
SELECT CUSTOMER_ID, FUND_NAME, SAVINGS_AMOUNT
FROM SAVINGS_TABLE
WHERE CUSTOMER_ID = 1
,它给出:
^{pr2}$我知道这是正确的,所以问题不是数据。在
在Spyder中,我使用Python
import pandas as pd
import pyodbc as po
DSN = 'MY_DSN'
UID = 'MY_USER'
PWD = 'MY_PASSWORD'
CON = po.connect('DSN={0}; UID={1}; PWD={2}'.format(DSN, UID, PWD))
SQL = """SELECT CUSTOMER_ID, FUND_NAME, SAVINGS_AMOUNT
FROM SAVINGS_TABLE
WHERE CUSTOMER_ID = 1"""
df = pd.read_sql(SQL, CON)
df
Out[16]:
CUSTOMER_ID FUND_NAME SAVINGS_AMOUNT
0 1 ASSET_X 25913172.0
1 1 ASSET_Y 71853333.0
这里发生了什么,我该怎么解决?在
列SAVINGS_AMOUNT
是DECIMAL
,其中Size=9
和{pd.read_sql
中设置一个参数来解释该列。在
我知道我可以简单地除以100
来纠正这个问题。但我不想那样做。我想读正确的数字。在
我也在用Windows。在
您可能会发现显式地将十进制分隔符设置为挪威使用的分隔符有帮助
不确定是否尝试强制SQL输入:
请试试这个。它可能有用。在
相关问题 更多 >
编程相关推荐