Séries no Pandas

Cansado de programar?

Cansado(a) de quebrar a cabeça para aprender a programar Python de verdade?

Conheça a melhor e mais completa formação de Python e Django e sinta-se um programador verdadeiramente competente. Além de Python e Django, você também vai aprender Banco de Dados, SQL, HTML, CSS, Javascript, Bootstrap e muito mais!

Quero aprender Python e Django de Verdade! Quero aprender!
Suporte

Tire suas dúvidas diretamente com o professor

Suporte

Projetos práticos voltados para o mercado de trabalho

Suporte

Formação moderna com foco na prática profissional

Pandas, Pandas everywhere!

Hoje vamos continuar nossa Jornada no mundo da Ciência de Dados com Python!

Prontos pra conhecer as Séries do Pandas???

Séries!

Ô, produção?? De novo??? :unamused:

Esse é um post muito importante!

Fizemos com muito carinho para você saia daqui entendendo os principais componentes do Pandas: séries.

E não perca o post de dataframes que vem na sequência!!

Conhecendo bem esses conceitos, o caminho para o tratamento de dados fica muito mais suave.

Já fizemos outro post de Pandas, mostrando como importar arquivos CSV! Acesse o post clicando aqui!

Como eu sei que vocês são apressados, vamos nessa!

Vá Direto ao Assunto…

Definição de Séries

Começando pelo começo, o componente basilar do Pandas são as Séries.

Uma série é uma espécie de arranjo unidimensional, como uma lista, mas possui algumas características diferentes.

Uma série tem 4 partes importantes:

  • Os elementos em si
  • O índice que contém a referência para acessar os elementos
  • O tipo dos elementos
  • Um nome

Como jack, o estripador, vamos por partes. :hocho: :hocho: :hocho:

Elementos e Tipos

Os elementos podem ser de qualquer tipo, ou seja, podemos ter uma série com números e strings, por exemplo.

Como o pandas é implementado utilizando numpy, colocar tipos diferentes numa mesma séria não é recomendado, porque perdemos muitas das vantagens de performance quando são do mesmo tipo.

Até aqui, nenhum segredo.

Abaixo, criamos duas séries de exemplo de forma bem parecida como criamos a lista, com a exceção de que as criamos a partir da classe Series do pandas:

1
2
3
4
5
6
7
8
9
10
11
12
13
>>> import pandas as pd
>>> serie = pd.Series([42, 99, -1])
>>> serie
0    42
1    99
2    -1
dtype: int64
>>> serie2 = pd.Series(['radiohead', 2.3, True])
>>> serie2
0    radiohead
1          2.3
2         True
dtype: object

Percebam que a primeira série tem o tipo int64, pois todos os elementos são inteiros.

Já a segunda é uma salada, com string, um número racional e um valor booleano.

O tipo da serie2 é object, ou seja, um tipo bem genérico para abarcar a bagunça que fizemos com tipos diferentes de elementos.

Assim, concluimos a primeira parte:

:white_check_mark: Elementos de uma série

Agora, vamos para uma parte muito importante, como acessar os elementos.

Mas primeeeeiro…

Está curtindo esse conteúdo? :thumbsup:

Que tal receber 30 dias de conteúdo direto na sua Caixa de Entrada?

Sua assinatura não pôde ser validada.
Você fez sua assinatura com sucesso.

Assine a PyDicas e receba 30 dias do melhor conteúdo Python direto na sua Caixa de Entrada: direto e sem enrolação!

Acessando elementos

Numa lista, acessamos os elementos por meio de índices posicionais, numéricos, certo?

Acessar o primeiro elemento: lista[0], o terceiro elemento: lista[2], e assim por diante.

Nas séries podemos acessar da mesma forma! Vamos testar:

1
2
3
4
>>> serie[0]
42
>>> serie[2]
-1

Muita atenção, agora!

Nesse exemplo acessamos os elementos com um índice posicional, mas não precisa ser assim, podemos criar um índice próprio que nem precisa ser numérico!

Nós mesmos podemos criar os índices do jeito que bem entendermos: números, strings, tuplas. Meio estranho? Vai ficar fácil com exemplos.

Imaginem que queiramos guardar as calorias de cada alimento (tô de dieta :sob:).

Podemos criar uma série com as calorias de uma banana, um prato feito e um big mac (nham, que fome):

1
2
3
4
5
6
7
>>> import pandas as pd
>>> serie = pd.Series([200, 350, 550])
>>> serie
0    200
1    350
2    550
dtype: int64

Quando não passamos quais devem ser os índices de uma série, o pandas cria um objeto do tipo RangeIndex que vai de 0 até o número de elementos menos um: no exemplo acima, de 0 a 2.

Mas, e agora? Qual caloria é do big mac? Se eu comer uma banana, quantas calorias estou ingerindo?

Com esse índice, para acessar as calorias do prato feito basta executar serie[1]:

1
2
>>> serie[1]
350

Vamos criar um índice mais legal, com o nome dos alimentos?

1
2
3
4
5
6
7
>>> import pandas as pd
>>> serie = pd.Series([200, 350, 550], index=['banana', 'prato feito', 'big mac'])
>>> serie
banana         200
prato feito    350
big mac        550
dtype: int64

Agora sim! Será que posso comer um big mac na minha dieta?

1
2
>>> serie['big mac']
550

Acho que não :grimacing:

Maneiro? É bem importante entendermos como funcionam os índices, porque o acesso aos dados em séries e dataframes se dá por meio deles!

Vamos a mais um exemplo, esse pra mostrar como os índices são flexíveis:

1
2
3
4
5
6
7
>>> import pandas as pd
>>> serie = pd.Series([200, 350, 550], index=[(0, 0), (0, 1), (0, 2)])
>>> serie
(0, 0)    200
(0, 1)    350
(0, 2)    550
dtype: int64

Sim, tuplas como índices! E como acessar os elementos? Só passar a tupla certa e pronto:

1
2
>>> serie[(0,1)]
350
Jornada Python Jornada Python

Um nome pra chamar de seu

Last, but not least: as séries do pandas podem ter um nome!

1
2
3
4
5
6
7
>>> import pandas as pd
>>> serie = pd.Series([200, 350, 550], index=['banana', 'prato feito', 'big mac'], name='calorias')
>>> serie
banana         200
prato feito    350
big mac        550
Name: calorias, dtype: int64

Vejam que criamos explicitamente um nome, ‘calorias’, para nossa série.

Conclusão

É isso, galera! Um post bem importante para o início da carreira de cientista ou engenheiro de dados.

Pandas é um mundo à parte e conhecer bem seus principais componentes é essencial para realizar manipulação de dados.

Teremos outros tantos posts, com detalhamento do acesso aos dados com pandas, índices hierárquicos, tratamento de grandes volumes de dados e muito mais!

Daqui vocês podem seguir direto para o post de Dataframes!

Até a próxima!

#newsletter Olá :wave: Curtiu o artigo? Então faça parte da nossa Newsletter! Privacidade Não se preocupe, respeitamos sua privacidade. Você pode se descadastrar a qualquer momento.