У меня есть этот вычисленный кадр данных Pandas в виде df, который имеет плавающее значение, строковый индекс и значения nan. Моя логика очень проста, что в конкретном столбце при попытке проверить значение последнего элемента (==> = <= один из приведенных ниже примеров) </p>
Здесь в условии IF выдается ошибка и выполнение прекращается. Почему это происходит. Как решить эту проблему? Нэн вызывает проблему?
Time close ST_100_0.885 ST_Test
---- 0.134 1.1111 nan
---- 1.258 2.2222 dn
---- 3.255 3.1212 up
---- 4.256 4.3232 up
---- 4.356 5.4343 dn
import requests
import time
import pandas as pd
import json
from pandas.io.json import json_normalize
df=df.fillna(0)
if (df['ST_100_0.885'][-1] <= df['close'][-1]):
print("test passed")
некоторые из проверок, которые я сделал, которые показывают, что df имеет значение типа float объекта, как и ожидалось
Ошибки, которые я получаю при отладке
if (df['ST_100_0.885'][-1] <= df['close'][-1]):
in __getitem__
result = self.index.get_value(self, key)
in get_value
tz=getattr(series.dtype, 'tz', None))
File "pandas\_libs\index.pyx", line 98, in pandas._libs.index.IndexEngine.get_value (pandas\_libs\index.c:4363)
File "pandas\_libs\index.pyx", line 106, in pandas._libs.index.IndexEngine.get_value (pandas\_libs\index.c:4046)
File "pandas\_libs\index.pyx", line 154, in pandas._libs.index.IndexEngine.get_loc (pandas\_libs\index.c:5085)
File "pandas\_libs\hashtable_class_helper.pxi", line 756, in pandas._libs.hashtable.Int64HashTable.get_item (pandas\_libs\hashtable.c:13913)
File "pandas\_libs\hashtable_class_helper.pxi", line 762, in pandas._libs.hashtable.Int64HashTable.get_item (pandas\_libs\hashtable.c:13857)
KeyError: -1
close float64
high float64
low float64
open float64
time datetime64[ns, US/Alaska]
volumefrom float64
volumeto float64
dtype: objec
T
Обратите внимание, что [-1] используется для доступа к последнему элементу, мне также нужно получить доступ к предыдущему элементу в моей логике, если это вызывает проблему, как правильно получить доступ к последнему и предыдущему элементу.