segunda-feira, 20 de julho de 2020

Selecionando uma coluna com Pandas

Como já vimos nos posts anteriores selecionar uma coluna de um dataframe com Pandas retorna uma série. Uma série é um conjunto de dados organizados numa dimensão, diferente do dataframe que tem duas dimensões. Uma série é composta pelo índice e pelos dados. Com a biblioteca Pandas é possível criar uma série sem precisar de um dataframe, mais isso não é muito comum. O que geralmente acontece é criar uma série a partir de um dataframe.
Nesse tutorial vamos aprender a criar uma série de duas formas diferentes. No primeiro exemplo vamos usar o índice para criar uma série e no outro vamos criar uma série a partir de um atributo.

Como fazer isso...

Para criar uma série a partir de um dataframe, usando índices, o que precisamos fazer é passar o nome da coluna como se fosse um índice. Veja o exemplo abaixo:

>>> import pandas as pd
>>> filmes = pd.read_csv('filmes.csv', encoding='latin-1')
>>> filmes['Titulo no Brasil']
0                    PREÇO DA PAZ O
1                       CARTOMANTEA
2              BLACK & WHITE VOL. 9
3                    O GURU DO SEXO
4             O AMERICANO TRANQUILO
                       ...
9257          ROCK OF AGES: O FILME
9258                         MATRIX
9259                 MILITARY WIVES
9260    ROBERTO CARLOS EM JERUSALÉM
9261                         O POÇO
Name: Titulo no Brasil, Length: 9262, dtype: object

Criar uma série a partir de um atributo é ainda mais simples do que com índice. Veja um exemplo:

>>> import pandas as pd
>>> filmes = pd.read_csv('filmes.csv', encoding='latin-1')
>>> filmes.Diretor
0       PAULO DE TARSO DE CARVALHO MORELLI
1           WAGNER DE ASSIS E PABLO URANGA
2                LENILDO MAURICIO DA SILVA
3                              DAISY MAYER
4                            PHILLIP NOYCE
                           ...
9257                         ADAM SHANKMAN
9258         LANA WACHOWSKI ANDY WACHOWSKI
9259                        PETER CATTANEO
9260      MARIO HUMBERTO MEIRELLES MOREIRA
9261                 ANDRE BORELLI MARTINS
Name: Diretor, Length: 9262, dtype: object

Outra alternativa é utilizar os atributos loc e iloc. Com o atributo loc é possível conseguir uma série de uma coluna ou linha passando o seu nome. O atributo iloc funciona de modo semelhante ao atributo loc, a diferença é que o atributo iloc recebe o índice da coluna.
Veja um exemplo de como utilizar o atributo loc:

>>> import pandas as pd
>>> filmes = pd.read_csv('filmes.csv', encoding='latin-1')
>>> filmes.loc[:, 'Titulo Original']
0                    PREÇO DA PAZ O
1                       CARTOMANTEA
2              BLACK & WHITE VOL. 9
3                          THE GURU
4                    QUIET AMERICAN
                   ...             
9257                   ROCK OF AGES
9258                     THE MATRIX
9259                 MILITARY WIVES
9260    ROBERTO CARLOS EM JERUSALÉM
9261                         O POÇO
Name: Titulo Original, Length: 9262, dtype: object

Veja um exemplo de como utilizar o atributo iloc:

>>> import pandas as pd
>>> filmes = pd.read_csv('filmes.csv', encoding='latin-1')
>>> filmes.iloc[:, 1]
0                    PREÇO DA PAZ O
1                       CARTOMANTEA
2              BLACK & WHITE VOL. 9
3                          THE GURU
4                    QUIET AMERICAN
                   ...             
9257                   ROCK OF AGES
9258                     THE MATRIX
9259                 MILITARY WIVES
9260    ROBERTO CARLOS EM JERUSALÉM
9261                         O POÇO
Name: Titulo Original, Length: 9262, dtype: object

Nos dois exemplos acima acessamos todos os valores da coluna ‘Título Original’. No primeiro exemplo usamos o atributo loc. Com esse atributos passamos o nome da coluna que queremos acessar, no caso ‘Título Original’. Já com o atributo iloc passamos o número do índice da coluna que queremos acessar. No exemplo, logo acima, passamos o valor um assim temos acesso aos dados da segunda coluna (Lembrando que o índice começa em zero). Os dois pontos usados nos exemplos sinaliza que queremos os dados de todas as alinhas. Para selecionar um intervalo: filmes.iloc[42:100, 1].
Na saído dos dois atributos é possível notar o índice das linhas (rows), três pontos entre as linhas e, no final, o nome da coluna, o tamanho (Length) e o tipo de dados (dtype). O índice serve para saber qual é a posição do valor. Os três pontos sinalizam que alguns elementos não foram mostrados.
Um dataframe do Pandas, geralmente, tem duas ou mais colunas e cada uma dessas colunas pode ser tratada como uma série.
Nos exemplos acima ficou claro que podemos obter uma série de um dataframe de diferentes maneiras. O jeito mais fácil é como atributo. Uma coisa para prestar atenção na hora de nomear: os valores aceitos são os alfanuméricos sem espaços e sem caracteres especiais.

0 comentários:

Postar um comentário