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:
DataFrame.indexpythonSintaxe 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:
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)pythonO aspecto do DataFrame resultante seria o seguinte:
Nombre Edad Ciudad
0 Alicia 25 Madrid
1 Juan 30 Lugo
2 Carlos 35 CádizPara 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:
# Acceso a la columna “Edad”
print(df['Edad'])pythonComo resultado, obtêm-se os diferentes valores das idades:
0 25
1 30
2 35
Name: Edad, dtype: int64Se 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. 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»:
print(df.loc[0])pythonComo resultado, aparecem os valores previstos, ou seja, os que pertencem a «Alicia»:
Nombre Alicia
Edad 25
Ciudad Madrid
Name: 0, dtype: objectIndexaçã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.
# 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])pythonOs resultados que obtemos ao usar a propriedade iloc[] são os seguintes:
Nombre Alicia
Edad 25
Ciudad Madrid
Name: 0, dtype: object
25Indexaçã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:
print(df.at(1, 'Ciudad'))pythonO 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:
print(df.iat(1, 2))pythonIndexaçã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:
# Selección de las filas en las que la edad sea superior a 30
print(df[df[Edad] > 30])pythonComo era de se esperar, a condição anterior só se aplica a Carlos, que tem 35 anos. Portanto, o resultado é o seguinte:
Nombre Edad Ciudad
2 Carlos 35 Cádiz