使用 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的显示精度。
将 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的显示精度。