我不确定这是正常还是奇怪的结果,我在下面的简单DataFrame中得到了以下内容:浮动股票价格包含5个元素,其日期作为指数,如果我应用加号运算符,结果正确6位小数,但是如果我应用除法或减法,我只会收到1位小数,并且不确定结果是否正确,有人可以解释一下原因吗,否则在我应用除法时如何获得6个分数:
print(cl)
Out[45]:
Date
2017-01-03 167.190002
2017-01-04 169.259995
2017-01-05 168.699997
2017-01-06 169.529999
2017-01-09 167.649994
Freq: B, Name: Close, dtype: float64
cl[1:]/cl[:-1]
Out[46]:
Date
2017-01-03 NaN
2017-01-04 1.0
2017-01-05 1.0
2017-01-06 1.0
2017-01-09 NaN
Freq: B, Name: Close, dtype: float64
cl[1:]+cl[:-1]
Out[47]:
Date
2017-01-03 NaN
2017-01-04 338.519990
2017-01-05 337.399994
2017-01-06 339.059998
2017-01-09 NaN
Freq: B, Name: Close, dtype: float64
cl[1:]-cl[:-1]
Out[48]:
Date
2017-01-03 NaN
2017-01-04 0.0
2017-01-05 0.0
2017-01-06 0.0
2017-01-09 NaN
Freq: B, Name: Close, dtype: float64
答案 0 :(得分:1)
计算很好。这是一种打印功能,它以某种格式显示浮点值。您可以像这样更改熊猫使用的默认格式:
import pandas as pd
pd.options.display.float_format = '{:,.6f}'.format
答案 1 :(得分:0)
当值等于零时,是否有理由要六位小数?当您将变量保留为DataFrame对象时,它将在运行操作时将索引对齐,因此您要减去或除以两个相同的数字并得到一或零。因此,没有必要显示更多的数字。如果您尝试将前四个数字除以后四个数字,而又没有按索引排列它们,请尝试
cl[1:].values/cl[:-1].values
运行此命令时,我得到四个数字输出,带八个小数位