# Seleccionar datos de DataFrames con Pandas loc\[\]

Pandas `DataFrame.loc[]` es un indexador de la [Biblioteca Python Pandas](https://www.ionos.mx/digitalguide/paginas-web/desarrollo-web/python-pandas/) que se utiliza para seleccionar datos de un DataFrame basándose en etiquetas. De esta manera, puedes extraer filas y columnas específicas de un DataFrame.

## Sintaxis de Pandas `loc[]`

El parámetro que se le pasa a `loc[]` es la **selección de etiquetas deseada**. Por lo demás, la sintaxis es muy simple:

```python
DataFrame.loc[selection]
```

En Pandas loc\[\], la selección se realiza principalmente en función de etiquetas. El parámetro que se pasa puede ser una **etiqueta individual, una lista o un rango de etiquetas**. Sin embargo, también se pueden utilizar arrays booleanos.

## Diferencias entre `loc[]` y `iloc[]`

Mientras que Pandas `DataFrame.loc[]` selecciona datos basados en etiquetas, existe otro indexador similar en Pandas, DataFrame.iloc, que se utiliza para seleccionar datos basados en posiciones de enteros.

El siguiente ejemplo ilustra de una forma clara las diferencias entre ambos indexadores. Primero, se crea un [DataFrame de Pandas](https://www.ionos.mx/digitalguide/paginas-web/desarrollo-web/dataframes-de-pandas-python/):

```python
import pandas as pd
# Ejemplo de DataFrame
data = {'Nombre': ['Ana', 'Juan', 'Tomás'], 'Edad': [23, 35, 30]}
df = pd.DataFrame(data)
print(df)
```

El DataFrame resultante sería el siguiente:

```none
Nombre   Edad
0      Ana     23
1     Juan     35
2    Tomás     30
```

Si quisiéramos extraer a “Ana” del DataFame, se podrían utilizar tanto `loc[]` como `iloc[]`. El resultado que se obtiene es el mismo, pero siguiendo dos rutas diferentes:

```python
# Con loc por etiqueta
print(df.loc[0, 'Nombre'])  # Salida: 'Ana'
# Con iloc por posición
print(df.iloc[0, 0])  # Salida: 'Ana'
```

## Cómo utilizar Pandas `DataFrame.loc[]`

Pandas `loc[]` sirve para **extraer subconjuntos de un DataFrame**, ya sea una o varias filas o columnas. El indexador `loc[]` puede tener diferentes aplicaciones de uso.

### Selección de una fila individual

A continuación, crearemos un DataFrame de ejemplo usando el siguiente código:

```python
import pandas as pd
data = {
    'Nombre': ['Ana', 'Juan', 'Tomás'],
    'Edad': [23, 35, 30],
    'Ciudad': ['León', 'Madrid', 'Salamanca']
}
df = pd.DataFrame(data)
print(df)
```

El DataFrame resultante sería el siguiente:

```none
Nombre  Edad    Ciudad
0      Ana    23      León
1     Juan    35    Madrid
2    Tomás    30 Salamanca
```

Para seleccionar los datos de la fila con el índice 1 (que corresponde a Juan), se puede utilizar el indexador Pandas `loc[]`:

```python
juan_data = df.loc[1]
print(juan_data)
```

El resultado sería el siguiente:

```none
Nombre         Juan
Edad             35
Ciudad       Madrid
Name: 1, dtype: object
```

### Selección de varias columnas

También puedes usar `DataFrame.loc[]` para seleccionar un subconjunto de columnas. El código selecciona las columnas “Nombre” y “Ciudad” para todas las filas:

```python
name_stadt = df.loc[:, ['Nombre', 'Ciudad']]
print(name_stadt)
```

Como resultado, obtienes un subconjunto del DataFrame original:

```none
Nombre    Ciudad
0      Ana      León
1     Juan    Madrid
2    Tomás Salamanca
```

### Selección basada en una condición

Con Pandas `loc[]` también es posible seleccionar filas basadas en una condición. En este caso, se utilizan [operadores de comparación booleanos](https://www.ionos.mx/digitalguide/online-marketing/analisis-web/operadores-booleanos/). En el siguiente código, por ejemplo, se filtrarán todas las personas que tienen más de 25 años:

```python
older_than_25 = df.loc[df['Edad'] > 25]
print(older_than_25)
```

```none
Nombre  Edad    Ciudad
1     Juan    35    Madrid
2    Tomás    30 Salamanca
```


This is a markdown version of: [https://www.ionos.mx/digitalguide/paginas-web/desarrollo-web/pandas-dataframe-loc-en-python/](https://www.ionos.mx/digitalguide/paginas-web/desarrollo-web/pandas-dataframe-loc-en-python/) for AI/LLM consumption.