Objeto Index de Pandas
El objeto Index de Pandas es una clase base utilizada para identificar etiquetas de eje, y proporciona funciones ricas para representar y gestionar el índice de los datos.
Las siguientes son algunas características y usos clave del objeto Index:
- Identificación única:
IndexEl objeto proporciona identificadores únicos para los datos, lo cual es crucial para la selección y manipulación de datos. - Base de etiquetas: A diferencia de la indexación basada en posición (como la indexación de listas de Python),
Indexpermite la indexación basada en etiquetas, lo que hace que la manipulación de datos sea más intuitiva y flexible. - Soporte de tipos de datos:
IndexPuede contener varios tipos de datos, incluyendo enteros, flotantes, cadenas, fechas y horas, etc.
Pandas proporciona varios tipos diferentes de Index para diferentes escenarios:
- RangeIndex: un objeto de índice de valores enteros que ahorra memoria, similar al `range` de Python.
rangeobjeto. - Index: el tipo de índice más básico, que puede contener cualquier tipo de datos.
- MultiIndex: un índice multinivel, que te permite tener varios niveles de índice, similar a varias columnas en un DataFrame.
- DatetimeIndex: un índice optimizado para datos de fecha y hora, que proporciona funcionalidades relacionadas con fecha y hora.
- PeriodIndex: un índice basado en periodos de tiempo, como años, trimestres, etc.
- TimedeltaIndex: un índice basado en diferencias de tiempo (Δt).
Constructor de Index
| Clase/Método | Descripción |
|---|---|
pd.Index(data, dtype, name) |
Crea un objeto Index, con soporte para datos personalizados, tipo de datos y nombre. |
Atributos de Index
| Atributo | Descripción |
|---|---|
Index.values |
Devuelve la parte de datos del Index (array de NumPy). |
Index.dtype |
Devuelve el tipo de datos del Index. |
Index.name |
Devuelve o establece el nombre del Index. |
Index.shape |
Devuelve la forma del Index (en forma de tupla). |
Index.size |
Devuelve el número de elementos del Index. |
Index.nlevels |
Devuelve el número de niveles del Index (para MultiIndex). |
Index.is_unique |
Comprueba si los valores del Index son únicos. |
Index.is_monotonic |
Comprueba si el Index es monótonamente creciente. |
Index.is_monotonic_decreasing |
Comprueba si el Index es monótonamente decreciente. |
Index.has_duplicates |
Comprueba si el Index tiene valores duplicados. |
Index.empty |
Comprueba si el Index está vacío. |
Métodos de Index
Operaciones de datos
| Método | Descripción |
|---|---|
Index.append(other) |
Añade otro Index al Index actual. |
Index.drop(labels) |
Elimina la etiqueta especificada. |
Index.insert(loc, item) |
Inserta un elemento en la posición especificada. |
Index.unique() |
Devuelve los valores únicos del Index. |
Index.drop_duplicates() |
Elimina los valores duplicados. |
Index.sort_values() |
Ordena por valor. |
Index.sort_values(ascending=False) |
Ordena por valor en orden descendente. |
Index.tolist() |
Convierte el Index en una lista. |
Index.to_numpy() |
Convierte el Index en un array de NumPy. |
Index.to_frame() |
Convierte el Index en un DataFrame. |
Index.astype(dtype) |
Convierte el Index al tipo de datos especificado. |
Index.map(func) |
Aplica una función a cada elemento del Index. |
Index.where(cond, other) |
Reemplaza valores según una condición. |
Index.mask(cond, other) |
Reemplaza valores según una condición (a diferencia dewhere`where`). |
Operaciones de indexación
| Método | Descripción |
|---|---|
Index.get_loc(key) |
Devuelve la posición de la etiqueta especificada. |
Index.get_indexer(target) |
Devuelve las posiciones del Index objetivo en el Index actual. |
Index.slice_locs(start, end) |
Devuelve las posiciones de los slices para el rango especificado. |
Index.intersection(other) |
Devuelve la intersección de dos Index. |
Index.union(other) |
Devuelve la unión de dos Index. |
Index.difference(other) |
Devuelve la diferencia de dos Index. |
Index.symmetric_difference(other) |
Devuelve la diferencia simétrica de dos Index. |
Index.isin(values) |
Comprueba si los valores del Index están en la lista especificada. |
Index.reindex(target) |
Reindexa según el Index objetivo. |
Index.reindex_like(other) |
Reindexa según otro Index. |
Cálculos estadísticos
| Método | Descripción |
|---|---|
Index.min() |
Devuelve el valor mínimo del Index. |
Index.max() |
Devuelve el valor máximo del Index. |
Index.argmin() |
Devuelve la posición del índice del valor mínimo. |
Index.argmax() |
Devuelve la posición del índice del valor máximo. |
Index.value_counts() |
Devuelve la frecuencia de cada valor en el Index. |
Métodos de MultiIndex
| Método | Descripción |
|---|---|
pd.MultiIndex.from_arrays() |
Crea un MultiIndex a partir de un array. |
pd.MultiIndex.from_tuples() |
Crea un MultiIndex a partir de tuplas. |
pd.MultiIndex.from_product() |
Crea un MultiIndex a partir del producto cartesiano. |
MultiIndex.levels |
Devuelve los niveles del MultiIndex. |
MultiIndex.codes |
Devuelve los códigos del MultiIndex. |
MultiIndex.swaplevel(i, j) |
Intercambia las posiciones de dos niveles. |
MultiIndex.droplevel(level) |
Elimina el nivel especificado. |
MultiIndex.set_levels(levels) |
Establece los niveles del MultiIndex. |
MultiIndex.set_codes(codes) |
Establece los códigos del MultiIndex. |
Ejemplo
Ejemplo
import pandas as pd
# Crear un Index
idx = pd.Index([1, 2, 3], name='MyIndex')
# Ver atributos
print(idx.values) # Mostrar la parte de datos
print(idx.name) # Mostrar el nombre
# Operaciones de datos
idx_new = idx.append(pd.Index([4, 5]))
print(idx_new) # Mostrar el Index después de añadir
# Operaciones de indexación
print(idx.get_loc(2)) # Mostrar la posición de la etiqueta 2
# Operaciones con MultiIndex
arrays = [[1, 1, 2, 2], ['A', 'B', 'A', 'B']]
multi_idx = pd.MultiIndex.from_arrays(arrays, names=('Num', 'Letter'))
print(multi_idx)
# Crear un Index
idx = pd.Index([1, 2, 3], name='MyIndex')
# Ver atributos
print(idx.values) # Mostrar la parte de datos
print(idx.name) # Mostrar el nombre
# Operaciones de datos
idx_new = idx.append(pd.Index([4, 5]))
print(idx_new) # Mostrar el Index después de añadir
# Operaciones de indexación
print(idx.get_loc(2)) # Mostrar la posición de la etiqueta 2
# Operaciones con MultiIndex
arrays = [[1, 1, 2, 2], ['A', 'B', 'A', 'B']]
multi_idx = pd.MultiIndex.from_arrays(arrays, names=('Num', 'Letter'))
print(multi_idx)
Si necesitas información más detallada, puedes consultarla documentación oficial de Pandas。
Otras extensiones