使用 pd.Dataframe.values.tolist 时的值不精确

Unprecise values when using pd.Dataframe.values.tolist

将 pd.DataFrame 转换为嵌套列表时,某些值不精确。

pd.DataFrame 示例行:

1.0 -3.0 -3.0 0.01 -3.0 -1.0

pd.DataFrame.values.tolist() 这一行:

[1.0, -3.0, -3.0, 0.010000000000000009, -3.0, -1.0]

如何解释和避免这种情况?

这是因为这个的原始值。当您显示 pd.DataFrame 时,它会四舍五入:

df = pd.DataFrame({'a':[1.0, -3.0, -3.0, 0.010000000000000009, -3.0, -1.0]})

    a
0   1.00
1   -3.00
2   -3.00
3   0.01
4   -3.00
5   -1.00
df.values.tolist()
# [[1.0], [-3.0], [-3.0], [0.010000000000000009], [-3.0], [-1.0]]

所以不是tolist()的问题。 pd.DataFrame 对数字进行四舍五入。

使用pandas.set_option("display.precision", x)设置DataFrame的显示精度。