数据框中的奇怪值

时间:2015-11-13 16:14:20

标签: python pandas floating-point range

我有一个数据帧df,其中包含一个功能,“下限”,“上限”和“步长”。

“上限”包含5个唯一值,例如:

In [1]
df['Upper Bound'].unique()

Out [1]
array([ 0.3 ,  0.  ,  0.2 ,  0.1 ,  0.15])

然而,当我访问df中的特定位置时,实际值是不同的。例如:

In [2]
df.iloc[1]['Upper Bound']

Out [2]
0.29999999999999999

这个问题遍布整个df。例如,我试图生成这些数组的列表(“资产”),每个数组表示“下限”到“上限”的“步长”值范围。

In[3]
assets = []
for i in range(0, len(df['Lower Bound'])-1):
    lst = (np.arange(df.iloc[i]['Lower Bound'],df.iloc[i]['Upper Bound']+0.01,df.iloc[i]['Step Size']))
    assets.append(lst.tolist())

df的第一行是[0.1,0.3,0.1]。然而,上述操作的结果是:

Out[3]
[[0.1, 0.2, 0.30000000000000004],
...

是什么给出的?

0 个答案:

没有答案