Python 如何阻止熊猫取整和改变数字?
我正在尝试从带有pandas的CSV加载和提取数据,我注意到它正在更改加载的数字。我如何防止这种情况 我有一个CSV,test.CSV: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
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.94554879099999,0.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)