Сообщить об ошибке.

Объект Index модуля pandas в Python

Синтаксис:

import pandas as pd

idx = pd.Index(data=None, dtype=None, copy=False, name=None, tupleize_cols=True)

Параметры:

  • data=None - значения индексных меток. Принимает 1-мерный массив данных, например список или numpy.ndarray.
  • dtype=None - Если dtype=None, то в data ищется dtype, который наилучшим образом соответствует данным. Если указан фактический dtype, то он применяется к data, если это безопасно. В противном случае будет выдана ошибка. По умолчанию dtype - это object.
  • copy=False - создает копию входного numpy.ndarray.
  • name=None - имя, которое будет сохранено в индексе. Другими словами имя индекса.
  • tupleize_cols=True - Если значение равно True, попытается создать мультииндекс, если это возможно.

Возвращаемое значение:

  • объект pandas.Index

Описание:

Объект pandas.Index представляет собой неизменяемую последовательность, которая используется для индексации и выравнивания.

Другими словами - это базовый объект, хранящий метки осей для всех объектов pandas.

  • Экземпляр индекса может содержать только хэшируемые объекты.
  • Экземпляр индекса не может содержать dtype numpy float16.

Объект pandas.Index принимают аргументы: index конструкторы объектов pandas.Series и pandas.DataFrame и columns объекта pandas.DataFrame.

Атрибуты объекта pandas.Index

  • Index.T: возвращает транспонирование, которое по определению является self.
  • Index.array: представляет собой ExtensionArray данных, поддерживающих этот индекс.
  • Index.dtype: возвращает объект dtype базовых данных.
  • Index.has_duplicates: проверяет, нет ли в индексе повторяющихся значений.
  • Index.hasnans: возвращает True, если есть NaN.
  • Index.inferred_type: возвращает строку типа, выведенного из значений.
  • Index.is_monotonic_decreasing: возвращает логическое значение, если значения равны или уменьшаются.
  • Index.is_monotonic_increasing: возвращает логическое значение, если значения равны или увеличиваются.
  • Index.is_unique: возвращает True, если индекс имеет уникальные значения.
  • Index.name: возвращает имя индекса или MultiIndex.
  • Index.nbytes: возвращает количество байтов в базовых данных.
  • Index.ndim: количество измерений базовых данных, по определению 1.
  • Index.nlevels: возвращает количество уровней.
  • Index.shape: возвращает кортеж формы базовых данных.
  • Index.size: возвращает количество элементов в базовых данных.
  • Index.values: возвращает массив, представляющий данные в индексе.

Примеры создания индексов

>>> import pandas as pd
# на основе списка чисел
>>> pd.Index([1, 2, 3])
# Index([1, 2, 3], dtype='int64')

# на основе списка строк
>>> pd.Index(list('abc'))
# Index(['a', 'b', 'c'], dtype='object')

# с определенным типом
>>> pd.Index([1, 2, 3], dtype="uint8")
# Index([1, 2, 3], dtype='uint8')

# на основе диапазона значений
>>> pd.Index(list(range(0, 12, 2)))
# Index([0, 2, 4, 6, 8, 10], dtype='int64')

Переиндексация DataFrame

>>> df = pd.DataFrame(np.random.randn(10, 4), columns=["A", "B", "C", "D"])
>>> df
#           A         B         C         D
# 0  1.256788 -1.178173  0.043192 -0.549144
# 1  0.356005 -2.266635  1.351355  0.198639
# 2  1.037683 -0.194164 -1.724755  0.408127
# 3 -0.061432 -0.500571  0.340309 -0.405382
# 4  0.918051  1.791983 -0.549686 -0.059720
# 5  1.963483 -1.212126 -1.192182 -1.271525
# 6  0.560851  1.679148 -0.513489 -0.691446
# 7  1.549550  1.570568  0.179642  2.111993
# 8  0.211066 -0.471180  0.295688  1.729719
# 9  0.397152  0.273011  1.096075 -0.119251

>>> df.index
# RangeIndex(start=0, stop=10, step=1)

# создаем новый индекс
>>> df.index = pd.Index(list(range(0,20,2)))
>>> df.index
# Index([0, 2, 4, 6, 8, 10, 12, 14, 16, 18], dtype='int64')

Переиндексация Series работает подобным образом

Дополнительно смотрите реальный пример переиндексации индексных меток в виде строки с датой и временем во временные метки строк в материале "Анализ логов Nginx модулем pandas"