# Selecionar dados de DataFrames com Pandas loc\[\]

Pandas `DataFrame.loc[]` é um indexador da biblioteca Python Pandas usado para selecionar dados de um DataFrame com base em rótulos. Dessa forma, você pode extrair linhas e colunas específicas de um DataFrame.

## Sintaxe do Pandas `loc[]`

O parâmetro passado para `loc[]` é a **seleção de etiquetas desejada**. Fora isso, a sintaxe é muito simples:

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

No Pandas loc\[\], a seleção é feita principalmente com base em etiquetas. O parâmetro passado pode ser uma **etiqueta individual, uma lista ou um intervalo de etiquetas**. No entanto, também é possível utilizar matrizes booleanas.

## Diferenças entre `loc[]` e `iloc[]`

Enquanto o Pandas `DataFrame.loc[]` seleciona dados com base em etiquetas, existe outro indexador semelhante no Pandas, [o DataFrame.iloc](https://www.ionos.com/pt-pt/digitalguide/paginas-web/desenvolvimento-web/propriedade-iloc-do-pandas-em-python/), que é usado para selecionar dados com base em posições inteiras.

O exemplo seguinte ilustra claramente as diferenças entre os dois indexadores. Primeiro, é criado um [DataFrame do Pandas](https://www.ionos.com/pt-pt/digitalguide/paginas-web/desenvolvimento-web/dataframes-do-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)
```

O DataFrame resultante seria o seguinte:

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

Se quiséssemos extrair «Ana» do DataFame, poderíamos usar tanto `loc[]` como `iloc[]`. O resultado obtido é o mesmo, mas seguindo dois caminhos 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'
```

## Como utilizar o Pandas `DataFrame.loc[]`

Pandas `loc[]` serve para **extrair subconjuntos de um DataFrame**, seja uma ou várias linhas ou colunas. O indexador `loc[]` pode ter diferentes aplicações de uso.

### Seleção de uma linha individual

Em seguida, criaremos um DataFrame de exemplo usando o seguinte 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)
```

O DataFrame resultante seria o seguinte:

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

Para selecionar os dados da linha com o índice 1 (que corresponde a Juan), pode-se usar o indexador Pandas `loc[]`:

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

O resultado seria o seguinte:

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

### Seleção de várias colunas

Também pode usar `DataFrame.loc[]` para selecionar um subconjunto de colunas. O código seleciona as colunas «Nome» e «Cidade» para todas as linhas:

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

Como resultado, obtém um subconjunto do DataFrame original:

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

### Seleção baseada numa condição

Com o Pandas `loc[]` também é possível selecionar linhas com base numa condição. Neste caso, são utilizados operadores de comparação booleanos. No código a seguir, por exemplo, serão filtradas todas as pessoas com mais de 25 anos:

```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.com/pt-pt/digitalguide/paginas-web/desenvolvimento-web/pandas-dataframe-loc-em-python/](https://www.ionos.com/pt-pt/digitalguide/paginas-web/desenvolvimento-web/pandas-dataframe-loc-em-python/) for AI/LLM consumption.