如何在python中截断浮点不精确

jjv*_*ade 4 python floating-point precision pandas

我正在编写一个程序,在日期系列中比较和排序值非常重要.但是,我遇到浮子不精确的问题

我从我的SQL服务器中提取这些数据,这些数据都应该是1.6.然而,结果却略有不同(见下文).因此,当我使用dataframe.rank()时,它不会将这两个日期视为相同的排名,而是将排名从01/02/2004排在02/01/2005之上.

任何人都知道如何处理这个,以便这两个最终会在同一级别?

modelInputData.loc['01/02/2004',('Level','inflationCore','EUR')]
Out[126]: 1.6000000000000003

modelInputData.loc['02/01/2005',('Level','inflationCore','EUR')]
Out[127]: 1.6000000000000001
Run Code Online (Sandbox Code Playgroud)

Nat*_*ent 6

您可以在带有浮点数的列上使用pd.Series.round().

precision = 2
df['col'] = df['col'].round(decimals = precision)
Run Code Online (Sandbox Code Playgroud)

请参阅:http://pandas.pydata.org/pandas-docs/stable/generated/pandas.Series.round.html