Использование функции iloc в панде - PullRequest
0 голосов
/ 02 мая 2018

Почему выдается следующая ошибка? Что означает запись s1.iloc[:,0].min()?

import pandas as pd
import numpy as np
s1 = pd.Series(np.random.rand(5), index=list(range(0, 10, 2)))
s1.iloc[:,0].min()


Traceback (most recent call last):

  File "<ipython-input-324-b57fa06dca84>", line 1, in <module>
    s1.iloc[:,0].min()

  File "C:\Users\xxx\AppData\Local\Continuum\anaconda3\lib\site-packages\pandas\core\indexing.py", line 1325, in __getitem__
    return self._getitem_tuple(key)

  File "C:\Users\xxx\AppData\Local\Continuum\anaconda3\lib\site-packages\pandas\core\indexing.py", line 1662, in _getitem_tuple
    self._has_valid_tuple(tup)

  File "C:\Users\xxx\AppData\Local\Continuum\anaconda3\lib\site-packages\pandas\core\indexing.py", line 188, in _has_valid_tuple
    raise IndexingError('Too many indexers')

IndexingError: Too many indexers

1 Ответ

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

A series (pd.Series) объект является одномерным. Он состоит из массива как контейнер элементов вместе с индексом.

Поэтому, как и для любого одномерного массива, разрешен только один индекс.

Для минимального значения серии используйте s1.min().

Синтаксис x.iloc[:, 0].min() используется там, где x является фреймом данных (pd.DataFrame). Другими словами, он используется для расчета минимума первого столбца во всех строках.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...