# Cómo utilizar Pandas DataFrame Index

Con la indexación de DataFrames de la [Biblioteca Python Pandas](https://www.ionos.com/es-us/digitalguide/paginas-web/desarrollo-web/python-pandas/) podrás acceder de una forma eficiente y directa a datos específicos dentro de un DataFrame. Con la ayuda de un índice de DataFrames de Pandas se pueden seleccionar filas y columnas específicas dentro del DataFrame, lo que puede resultar muy útil para el análisis de datos.

## ¿En qué consiste la indexación?

Cuando se indexa un DataFrame de Pandas, el objetivo es **facilitar la selección de determinados elementos del DataFrame**. Esto se hace seleccionando filas y columnas según sus posiciones 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 direcciones” para la estructura 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:

```python
DataFrame.index
```

## Sintaxis de la indexación de DataFrames

Existen diferentes formas de indexar un DataFrame de Pandas y la sintaxis de la indexación varía dependiendo de la operación que desees realizar.

### Indexación con etiquetas (nombres de columnas)

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

```python
import pandas as pd
# Ejemplo de DataFrame
data = {
    'Nombre': ['Alicia', 'Juan', 'Carlos'],
    'Edad': [25, 30, 35],
    'Ciudad': ['Nueva York', 'Houston', 'Chicago']
}
df = pd.DataFrame(data)
print(df)
```

El aspecto del DataFrame resultante sería el siguiente:

```none
Nombre    Edad    Ciudad
0    Alicia    25    Nueva York
1    Juan      30    Houston
2    Carlos    35    Chicago
```

Para acceder a todos los valores de una columna específica, puedes utilizar el nombre de la columna con el operador de indexación `[]` para su indexación. Para ello, introduce el nombre de la columna como una [cadena de Python](https://www.ionos.com/es-us/digitalguide/paginas-web/desarrollo-web/python-string/) en el operador de indexación:

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

Como resultado, se obtienen los diferentes valores de las edades:

```none
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 indexación.

### Indexación con `loc[]` (nombres de filas)

Para poder acceder a una fila específica de tu DataFrame, necesitarás el [indexador loc de Pandas](https://www.ionos.com/es-us/digitalguide/paginas-web/desarrollo-web/pandas-dataframe-loc-en-python/). 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”**:

```python
print(df.loc[0])
```

Como resultado, aparecen los valores previstos, es decir, los que pertenecen a “Alicia”:

```none
Nombre        Alicia
Edad          25
Ciudad       Nueva York
Name: 0, dtype: object
```

### Indexación con `iloc[]` (números de filas y columnas)

Existe otra forma de acceder a elementos específicos de un DataFrame y. probablemente, sea la más conocida: la indexación con números de filas y columnas. Para trabajar con el índice numérico del DataFrame de Pandas necesitarás la [propiedad iloc del DataFrame](https://www.ionos.com/es-us/digitalguide/paginas-web/desarrollo-web/propiedad-iloc-de-pandas-en-python/).

```python
# 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])
```

Los resultados que obtenemos al usar la propiedad `iloc[]` son los siguientes:

```none
Nombre        Alicia
Edad          25
Ciudad       Nueva York
Name: 0, dtype: object
25
```

### Indexación de valores individuales

Si solo te interesa un valor específico 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 correspondientes **con sus nombres**. Si el valor que nos interesa es el lugar de residencia de Juan, indicaremos la columna “Ciudad” y la primera fila para obtenerlo:

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

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

También existe la posibilidad 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 utilizando `iat`:

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

### Indexación booleana

Los subconjuntos de un DataFrame también se pueden indexar usando condiciones específicas. En este caso, hablamos de la llamada **indexación booleana**. La condición que desees comprobar debe evaluarse como verdadera (`True`) o falsa (`False`) y se coloca directamente dentro del operador de indexación. Por ejemplo, si quisiéramos extraer solo las filas en las que la persona sea mayor de 30 años, podríamos hacerlo así:

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

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:

```none
Nombre   Edad    Ciudad
2     Carlos     35   Chicago
```

Nota Ten en cuenta que puedes utilizar todos los operadores de comparación booleanos que se evalúan como `True` o `False`. Aprende todo lo que necesitas saber sobre los [operadores de Python en nuestra guía](https://www.ionos.com/es-us/digitalguide/paginas-web/desarrollo-web/python-operators/).


This is a markdown version of: [https://www.ionos.com/es-us/digitalguide/paginas-web/desarrollo-web/indice-de-dataframes-de-pandas-en-python/](https://www.ionos.com/es-us/digitalguide/paginas-web/desarrollo-web/indice-de-dataframes-de-pandas-en-python/) for AI/LLM consumption.