Объект Index в Pandas
Объект Index в Pandas — это базовый класс, используемый для идентификации меток осей и предоставляющий богатый функционал для представления и управления индексами данных.
Вот некоторые ключевые особенности и варианты использования объекта Index:
- Уникальная идентификация:
IndexОбъект предоставляет уникальные идентификаторы для данных, что крайне важно для выбора и обработки данных. - На основе меток: В отличие от позиционного индексирования (например, индексирования в списках Python),
IndexЭто позволяет выполнять индексирование по меткам, делая манипулирование данными более интуитивным и гибким. - Поддержка типов данных:
IndexОн может хранить данные нескольких типов, включая целые числа, числа с плавающей точкой, строки, дата-время и т. д.
Pandas предоставляет несколько различных типов Index для разных сценариев:
- RangeIndex: Эффективный по памяти объект индекса целочисленных значений, похожий на аналогичный в Python
rangeобъект. - Index: Самый базовый тип Index, который может содержать данные любого типа.
- MultiIndex: Многоуровневый индекс, который позволяет иметь несколько уровней индекса, аналогично нескольким столбцам в DataFrame.
- DatetimeIndex: Индекс, оптимизированный для данных типа дата-время, предоставляющий функциональность для работы с датой-временем.
- PeriodIndex: Индекс на основе периодов, таких как год, квартал и т. д.
- TimedeltaIndex: Индекс на основе временной дельты (Δt).
Конструктор Index
| Класс/Метод | Описание |
|---|---|
pd.Index(data, dtype, name) |
Создать объект Index с поддержкой пользовательских данных, типов данных и имени. |
Свойства Index
| Attribute | Описание |
|---|---|
Index.values |
Возвращает часть данных Index (массив numpy). |
Index.dtype |
Возвращает тип данных Index. |
Index.name |
Возвращает или задаёт имя Index. |
Index.shape |
Возвращает форму Index (в виде кортежа). |
Index.size |
Возвращает количество элементов в Index. |
Index.nlevels |
Возвращает количество уровней в Index (для MultiIndex). |
Index.is_unique |
Проверяет, являются ли значения в Index уникальными. |
Index.is_monotonic |
Проверяет, является ли Index монотонно возрастающим. |
Index.is_monotonic_decreasing |
Проверяет, является ли Index монотонно убывающим. |
Index.has_duplicates |
Проверяет, содержит ли Index повторяющиеся значения. |
Index.empty |
Проверить, пуст ли Index. |
Методы индексов
Операции с данными
| Метод | Описание |
|---|---|
Index.append(other) |
Добавить другой Index к текущему Index. |
Index.drop(labels) |
Удалить указанную метку. |
Index.insert(loc, item) |
Вставить элемент в указанную позицию. |
Index.unique() |
Вернуть уникальные значения в Index. |
Index.drop_duplicates() |
Удалить повторяющиеся значения. |
Index.sort_values() |
Сортировать по значению. |
Index.sort_values(ascending=False) |
Сортировать по значению в порядке убывания. |
Index.tolist() |
Преобразовать Index в список. |
Index.to_numpy() |
Преобразовать Index в массив numpy. |
Index.to_frame() |
Преобразовать Index в DataFrame. |
Index.astype(dtype) |
Преобразовать Index в указанный тип данных. |
Index.map(func) |
Применить функцию к каждому элементу в Index. |
Index.where(cond, other) |
Заменить значения на основе условия. |
Index.mask(cond, other) |
Заменить значения на основе условия (в отличие отwhere). |
Операции индексирования
| Метод | Описание |
|---|---|
Index.get_loc(key) |
Вернуть позицию указанной метки. |
Index.get_indexer(target) |
Вернуть позицию целевого Index в текущем Index. |
Index.slice_locs(start, end) |
Вернуть позицию среза для указанного диапазона. |
Index.intersection(other) |
Вернуть пересечение двух Index. |
Index.union(other) |
Вернуть объединение двух Index. |
Index.difference(other) |
Вернуть разность двух Index. |
Index.symmetric_difference(other) |
Вернуть симметрическую разность двух Index. |
Index.isin(values) |
Проверить, входят ли значения Index в указанный список. |
Index.reindex(target) |
Переиндексировать в соответствии с целевым Index. |
Index.reindex_like(other) |
Переиндексировать в соответствии с другим Index. |
Статистические вычисления
| Метод | Описание |
|---|---|
Index.min() |
Вернуть минимальное значение в Index. |
Index.max() |
Вернуть максимальное значение в Index. |
Index.argmin() |
Вернуть индексную позицию минимального значения. |
Index.argmax() |
Вернуть индексную позицию максимального значения. |
Index.value_counts() |
Вернуть частоту каждого значения в Index. |
Методы MultiIndex
| Метод | Описание |
|---|---|
pd.MultiIndex.from_arrays() |
Создать MultiIndex из массива. |
pd.MultiIndex.from_tuples() |
Создать MultiIndex из кортежей. |
pd.MultiIndex.from_product() |
Создать MultiIndex из декартова произведения. |
MultiIndex.levels |
Вернуть уровни MultiIndex. |
MultiIndex.codes |
Возвращает коды MultiIndex. |
MultiIndex.swaplevel(i, j) |
Меняет местами позиции двух уровней. |
MultiIndex.droplevel(level) |
Удаляет указанный уровень. |
MultiIndex.set_levels(levels) |
Задаёт уровни MultiIndex. |
MultiIndex.set_codes(codes) |
Задаёт коды MultiIndex. |
Пример
Пример
import pandas as pd
# Создание Index
idx = pd.Index([1, 2, 3], name='MyIndex')
# Просмотр свойств
print(idx.values) # Вывод части данных
print(idx.name) # Вывод имени
# Операции с данными
idx_new = idx.append(pd.Index([4, 5]))
print(idx_new) # Вывод добавленного Index
# Операции индексирования
print(idx.get_loc(2)) # Вывод позиции метки 2
# Операции с MultiIndex
arrays = [[1, 1, 2, 2], ['A', 'B', 'A', 'B']]
multi_idx = pd.MultiIndex.from_arrays(arrays, names=('Num', 'Letter'))
print(multi_idx)
# Создание Index
idx = pd.Index([1, 2, 3], name='MyIndex')
# Просмотр свойств
print(idx.values) # Вывод части данных
print(idx.name) # Вывод имени
# Операции с данными
idx_new = idx.append(pd.Index([4, 5]))
print(idx_new) # Вывод добавленного Index
# Операции индексирования
print(idx.get_loc(2)) # Вывод позиции метки 2
# Операции с MultiIndex
arrays = [[1, 1, 2, 2], ['A', 'B', 'A', 'B']]
multi_idx = pd.MultiIndex.from_arrays(arrays, names=('Num', 'Letter'))
print(multi_idx)
Для получения более подробной информации, пожалуйста, обратитесь кофициальной документации Pandas。
Другие расширения