KeyError при получении последнего значения в датафрейме - PullRequest
0 голосов
/ 13 мая 2018

Кадр данных pandas в приведенном ниже коде может вызывать любое значение, например q_data.low[0],q_data.date[8], но не может вызывать с последнего типа, например q_data.low[-1].

url = 'https://api.iextrading.com/1.0/stock/AAPL/chart/1y'
q_data = pd.read_json(url)
data =  q_data.date[0]
data1 = q_data.date[-1]

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/vinus/.local/lib/python2.7/site-packages/pandas/core/series.py", line 601, in __getitem__
    result = self.index.get_value(self, key)
  File "/home/vinus/.local/lib/python2.7/site-packages/pandas/core/indexes/base.py", line 2477, 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:4
404)
  File "pandas/_libs/index.pyx", line 106, in pandas._libs.index.IndexEngine.get_value (pandas/_libs/index.c:
4087)
  File "pandas/_libs/index.pyx", line 154, in pandas._libs.index.IndexEngine.get_loc (pandas/_libs/index.c:51
26)
  File "pandas/_libs/hashtable_class_helper.pxi", line 759, in pandas._libs.hashtable.Int64HashTable.get_item
 (pandas/_libs/hashtable.c:14031)
  File "pandas/_libs/hashtable_class_helper.pxi", line 765, in pandas._libs.hashtable.Int64HashTable.get_item
 (pandas/_libs/hashtable.c:13975)
KeyError: -1 

что не так с кодом?Как получить последнее значение в датафрейме?

1 Ответ

0 голосов
/ 13 мая 2018

Я думаю, нужно Series.iloc, потому что date[-1] ищет индекс с -1, который не существует, поэтому возникает ошибка:

data1 =  q_data.date.iloc[-1]
print (data1)
2018-05-11 00:00:00

Другое решение с DataFrame.iloc и get_loc для позиции date столбца:

data1 = q_data.iloc[-1, q_data.columns.get_loc('date')]
print (data1)
2018-05-11 00:00:00
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...