# Como utilizar o Pandas DataFrame Index

Com a indexação de DataFrames da Biblioteca Python Pandas, poderá aceder de forma eficiente e direta a dados específicos dentro de um DataFrame. Com a ajuda de um índice de DataFrames do Pandas, é possível selecionar linhas e colunas específicas dentro do DataFrame, o que pode ser muito útil para a análise de dados.

## Em que consiste a indexação?

Ao indexar um DataFrame do Pandas, o objetivo é **facilitar a seleção de determinados elementos do DataFrame**. Isso é feito selecionando linhas e colunas de acordo com suas posições ou etiquetas. Os índices servem para encontrar e manipular dados de forma mais rápida, pois oferecem **uma espécie de “sistema de endereços” para a estrutura de dados**.

## Sintaxe da propriedade `DataFrame.index` do Pandas

Pode utilizar a propriedade `index` para ver as etiquetas de um índice de um DataFrame. A sintaxe é a seguinte:

```python
DataFrame.index
```

## Sintaxe da indexação de DataFrames

Existem diferentes formas de indexar um DataFrame do Pandas e a sintaxe da indexação varia dependendo da operação que deseja realizar.

### Indexação com etiquetas (nomes de colunas)

Pode utilizar os nomes das colunas do DataFrame do Pandas para a indexação. Aqui está um exemplo:

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

O aspecto do DataFrame resultante seria o seguinte:

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

Para aceder a todos os valores de uma coluna específica, pode utilizar o nome da coluna com o operador de indexação `[]` para a sua indexação. Para tal, introduza o nome da coluna como uma cadeia de caracteres Python no operador de indexação:

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

Como resultado, obtêm-se os diferentes valores das idades:

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

Se pretender que sejam apresentadas várias colunas, e não apenas uma, pode indicar os nomes dessas colunas separados por vírgulas no operador de indexação.

### Indexação com `loc[]` (nomes de linhas)

Para aceder a uma linha específica do seu DataFrame, necessita do [indexador loc do Pandas](https://www.ionos.com/pt-pt/digitalguide/paginas-web/desenvolvimento-web/pandas-dataframe-loc-em-python/). Pode passar o nome da linha ou o número da linha. No exemplo seguinte, utiliza-se o DataFrame anterior e, neste caso, extrai-se a **primeira coluna com os valores de «Alicia»:**

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

Como resultado, aparecem os valores previstos, ou seja, os que pertencem a «Alicia»:

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

### Indexação com `iloc[]` (números de linhas e colunas)

Existe outra forma de aceder a elementos específicos de um DataFrame e, provavelmente, é a mais conhecida: a indexação com números de linhas e colunas. Para trabalhar com o índice numérico do DataFrame do Pandas, precisará da [propriedade iloc do DataFrame](https://www.ionos.com/pt-pt/digitalguide/paginas-web/desenvolvimento-web/propriedade-iloc-do-pandas-em-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])
```

Os resultados que obtemos ao usar a propriedade `iloc[]` são os seguintes:

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

### Indexação de valores individuais

Se estiver interessado apenas num valor específico do DataFrame, pode usar o indexador `at`, que lhe permitirá extrair esse valor de forma rápida e muito clara. Para isso, defina a linha e a coluna correspondentes **com os seus nomes**. Se o valor que nos interessa for o local de residência de Juan, indicaremos a coluna «Cidade» e a primeira linha para obtê-lo:

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

O resultado é a cidade onde Juan vive, ou seja, Lugo.

Também existe a possibilidade de utilizar o **indexador `iat`**, que funciona de forma semelhante ao `at`, mas em vez de usar os nomes das linhas e colunas, como no exemplo anterior, é necessário usar a **posição numérica**. Podemos obter o mesmo resultado que no exemplo anterior utilizando `iat`:

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

### Indexação booleana

Os subconjuntos de um DataFrame também podem ser indexados usando condições específicas. Neste caso, falamos da chamada **indexação booleana**. A condição que deseja verificar deve ser avaliada como verdadeira (`True`) ou falsa (`False`) e é colocada diretamente dentro do operador de indexação. Por exemplo, se quisermos extrair apenas as linhas em que a pessoa tem mais de 30 anos, poderíamos fazer assim:

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

Como era de se esperar, a condição anterior só se aplica a Carlos, que tem 35 anos. Portanto, o resultado é o seguinte:

```none
Nombre    Edad    Ciudad
2     Carlos    35    Cádiz
```

Nota Tenha em mente que pode utilizar todos os operadores de comparação booleanos que são avaliados como `True` ou `False`. Aprenda tudo o que precisa saber sobre os operadores Python no nosso guia.


This is a markdown version of: [https://www.ionos.com/pt-pt/digitalguide/paginas-web/desenvolvimento-web/indice-de-dataframes-do-pandas-em-python/](https://www.ionos.com/pt-pt/digitalguide/paginas-web/desenvolvimento-web/indice-de-dataframes-do-pandas-em-python/) for AI/LLM consumption.