Con la in­de­xa­ción de Da­ta­Fra­mes de la Bi­blio­te­ca Python Pandas podrás acceder de una forma eficiente y directa a datos es­pe­cí­fi­cos dentro de un DataFrame. Con la ayuda de un índice de Da­ta­Fra­mes de Pandas se pueden se­le­c­cio­nar filas y columnas es­pe­cí­fi­cas dentro del DataFrame, lo que puede resultar muy útil para el análisis de datos.

Hosting
Hosting de primera al mejor precio
  • 3x más rápido, ahora un 60 % de ahorro
  • Alta di­s­po­ni­bi­li­dad >99.99 %
  • Solo en IONOS: hasta 500 GB incluidos

¿En qué consiste la in­de­xa­ción?

Cuando se indexa un DataFrame de Pandas, el objetivo es facilitar la selección de de­te­r­mi­na­dos elementos del DataFrame. Esto se hace se­le­c­cio­na­n­do filas y columnas según sus po­si­cio­nes o etiquetas. Los índices sirven para encontrar y manipular datos de una forma más rápida, ya que ofrecen una especie de “sistema de di­re­c­cio­nes” para la es­tru­c­tu­ra de datos.

Sintaxis de la propiedad DataFrame.index de Pandas

Puedes utilizar la propiedad index para ver las etiquetas de un índice de un DataFrame. La sintaxis es la siguiente:

DataFrame.index
python

Sintaxis de la in­de­xa­ción de Da­ta­Fra­mes

Existen di­fe­re­n­tes formas de indexar un DataFrame de Pandas y la sintaxis de la in­de­xa­ción varía de­pe­n­die­n­do de la operación que desees realizar.

In­de­xa­ción con etiquetas (nombres de columnas)

Puedes utilizar los nombres de las columnas del DataFrame de Pandas para la in­de­xa­ción. Aquí tienes un ejemplo:

import pandas as pd
# Ejemplo de DataFrame
data = {
    'Nombre': ['Alicia', 'Juan', 'Carlos'],
    'Edad': [25, 30, 35],
    'Ciudad': ['Madrid', 'Lugo', 'Cádiz']
}
df = pd.DataFrame(data)
print(df)
python

El aspecto del DataFrame re­su­l­ta­n­te sería el siguiente:

Nombre    Edad    Ciudad
0    Alicia    25     Madrid
1    Juan      30     Lugo
2    Carlos    35     Cádiz

Para acceder a todos los valores de una columna es­pe­cí­fi­ca, puedes utilizar el nombre de la columna con el operador de in­de­xa­ción [] para su in­de­xa­ción. Para ello, introduce el nombre de la columna como una cadena de Python en el operador de in­de­xa­ción:

# Acceso a la columna “Edad”
print(df['Edad'])
python

Como resultado, se obtienen los di­fe­re­n­tes valores de las edades:

0    25
1    30
2    35
Name: Edad, dtype: int64

Si quieres que se muestren varias columnas, no solo una, puedes indicar los nombres de dichas columnas separados por comas en el operador de in­de­xa­ción.

In­de­xa­ción con loc[] (nombres de filas)

Para poder acceder a una fila es­pe­cí­fi­ca de tu DataFrame, ne­ce­si­ta­rás el indexador loc de Pandas. Puedes pasarle el nombre de la fila o el número de la fila. En el siguiente ejemplo, se usa el DataFrame anterior y, en este caso, se extraerá la primera columna con los valores de “Alicia”:

print(df.loc[0])
python

Como resultado, aparecen los valores previstos, es decir, los que pe­r­te­ne­cen a “Alicia”:

Nombre        Alicia
Edad          25
Ciudad        Madrid
Name: 0, dtype: object

In­de­xa­ción con iloc[] (números de filas y columnas)

Existe otra forma de acceder a elementos es­pe­cí­fi­cos de un DataFrame y. pro­ba­ble­me­n­te, sea la más conocida: la in­de­xa­ción con números de filas y columnas. Para trabajar con el índice numérico del DataFrame de Pandas ne­ce­si­ta­rás la propiedad iloc del DataFrame.

# Acceso a la primera fila
print(df.iloc[0])
# Acceso al valor en la primera fila y la segunda columna
print(df.iloc[0, 1])
python

Los re­su­l­ta­dos que obtenemos al usar la propiedad iloc[] son los si­guie­n­tes:

Nombre        Alicia
Edad          25
Ciudad        Madrid
Name: 0, dtype: object
25

In­de­xa­ción de valores in­di­vi­dua­les

Si solo te interesa un valor es­pe­cí­fi­co del DataFrame, puedes usar el indexador at, que te permitirá extraer ese valor de una forma rápida y muy clara. Para ello, define la fila y la columna co­rre­s­po­n­die­n­tes con sus nombres. Si el valor que nos interesa es el lugar de re­si­de­n­cia de Juan, in­di­ca­re­mos la columna “Ciudad” y la primera fila para obtenerlo:

print(df.at(1, 'Ciudad'))
python

El resultado es la ciudad en la que vive Juan, es decir, Lugo.

También existe la po­si­bi­li­dad de utilizar el indexador iat, que funciona de forma similar a at, pero en lugar de usar los nombres de las filas y columnas, como en el ejemplo anterior, hay que usar la posición numérica. Podemos obtener el mismo resultado que en el ejemplo anterior uti­li­za­n­do iat:

print(df.iat(1, 2))
python

In­de­xa­ción booleana

Los su­b­co­n­ju­n­tos de un DataFrame también se pueden indexar usando co­n­di­cio­nes es­pe­cí­fi­cas. En este caso, hablamos de la llamada in­de­xa­ción booleana. La condición que desees comprobar debe evaluarse como verdadera (True) o falsa (False) y se coloca di­re­c­ta­me­n­te dentro del operador de in­de­xa­ción. Por ejemplo, si qui­sié­ra­mos extraer solo las filas en las que la persona sea mayor de 30 años, podríamos hacerlo así:

# Selección de las filas en las que la edad sea superior a 30
print(df[df[Edad] > 30])
python

Como era de esperar, la condición anterior solo se cumple para Carlos, que tiene 35 años. Por lo tanto, el resultado es el siguiente:

Nombre    Edad    Ciudad
2     Carlos    35    Cádiz
Nota

Ten en cuenta que puedes utilizar todos los ope­ra­do­res de co­m­pa­ra­ción booleanos que se evalúan como True o False. Aprende todo lo que necesitas saber sobre los ope­ra­do­res de Python en nuestra guía.

Ir al menú principal