Python 如何阻止熊猫取整和改变数字?

Python 如何阻止熊猫取整和改变数字?,python,pandas,Python,Pandas,我正在尝试从带有pandas的CSV加载和提取数据,我注意到它正在更改加载的数字。我如何防止这种情况 我有一个CSV,test.CSV: q,a,b,c,d,e,f z,0.999211563,0.945548791,0.756781883,0.572315951,1.191243688,0.867855435 这里我加载数据: df = pd.read_csv("test.csv") print(df) 这将输出以下四舍五入的数字: q a b

我正在尝试从带有pandas的CSV加载和提取数据,我注意到它正在更改加载的数字。我如何防止这种情况

我有一个CSV,test.CSV:

q,a,b,c,d,e,f
z,0.999211563,0.945548791,0.756781883,0.572315951,1.191243688,0.867855435
这里我加载数据:

df = pd.read_csv("test.csv")
print(df)
这将输出以下四舍五入的数字:

   q         a         b         c         d         e         f
0  z  0.999212  0.945549  0.756782  0.572316  1.191244  0.867855
我最终想做的是按位置访问值:

print(df_.iloc[0, [1, 2, 3, 4, 5, 6]].tolist())
但这给一些数字增加了数字

[0.999211563,0.945548790999990.75678188299999,0.57231951,1.191243688,0.867855435]


熊猫正在改变我的数据。我怎样才能阻止熊猫舍入,在数字中添加数字?

这里有两件事在起作用。一种是,熊猫在输出数字时,不会以全机器精度打印数字,而是将数字四舍五入到设定的数字/小数。这只是外观,不影响存储的号码本身。然后,另一件事,“熊猫”实际上是在改变你的数据。这与计算机存储浮点数的方式有关。它们以二进制(2的补码)格式存储,并带有许多分馏。这意味着小数不能总是精确表示。这并不是熊猫独有的。关于@JohanL的评论:如果你真的想保持变量在源csv中的状态-将浮动视为字符串将是最短的答案。。。
import pandas as pd

with pd.option_context('display.precision', 10):
    df = pd.read_csv("test.csv", float_precision=None)
    print(df)