Uso de Pandas com Python

Instalação do Pandas

O processo de instalação é bem simples.

Basta entrar como su, e dar o seguinte comando:

pip3 install pandas

Segue o vídeo do processo.

Outro processo que pode ser usado é pelo apt

apt install python3-pandas python3-pandas-lib

Nada disso funcionou e agora?

Não se preocupe entre no seu jupyter, e digite o seguinte comando:

import sys

print(sys.executable)

Ele deve retornar um caminho no meu caso, foi:

/snap/jupyter/6/bin/python

Dai pegue esse caminho e instale

/snap/jupyter/6/bin/python pip install pandas –user

Tenho certeza que pelo menos uma destas técnicas irão funcionar com vc.

Definições

Series são arrays “unidimencional”

DataFrame são tabelas.

Criando uma Serie

Neste exemplo estarei mostrando como criar uma serie no pandas.

import pandas as pan

sr = pan.Series(['ele1','ele2','ele3'])

print(sr)

Resultado esperado:

0    ele1
1    ele2
2    ele3
dtype: object

Usando um dicionário

Usaremos uma série associado ao dicionario.

import pandas as pan

dic = {1:'elem1', 2:'elem2',3:'elem3'}
sr = pan.Series(dic)

print(sr)

O resultado esperado é como aparece a seguir:

1    elem1
2    elem2
3    elem3
dtype: object

Criando um DataFrame

Exemplo de criação de um dataframe

import pandas as pan

df1 = pan.DataFrame([[1,'item1','true'],[2,'item2','false'],[3,'item3','true']],columns=['ind','item','cond'])
print(df1)

Ao rodar esse exemplo fica conforme apresentado.

   ind   item   cond
0    1  item1   true
1    2  item2  false
2    3  item3   true

Como ler um arquivo no Pandas e concatenar arquivos.

import pandas as pd

df2 = pd.read_csv("2021-02-gasolina-etanol.csv",delimiter=";")

df3 = pd.read_csv("2021-03-gasolina-etanol.csv",delimiter=";")

df4 = pd.read_csv("2021-04-gasolina-etanol.csv",delimiter=";")

df5 = pd.read_csv("2021-05-gasolina-etanol-1.csv",delimiter=";")

df6 = pd.read_csv("2021-06-gasolina-etanol.csv",delimiter=";")

df7 = pd.read_csv("2021-07-gasolina-etanol.csv",delimiter=";")

frames = [df2,df3,df4,df5,df6,df7]

df = pd.concat(frames, sort=False)

print(df)

Gravando um DataFrame em disco

Para gravar um dataframe, usa-se a seguinte sintaxe:


df.to_csv("gasolina-etanol.csv",sep=';', encoding='utf-8')

dftotal = pd.read_csv("gasolina-etanol.csv",delimiter=";")

Comprimindo arquivo durante a gravação

Para gravar arquivos que voce processou em um dataframe, use a sintaxe abaixo.

df.to_csv("gasolina-etanol.cvs.gzip", sep=';', index=False,  encoding='utf-8', compression='gzip')

Lendo arquivos comprimidos

No exemplo a cima, gravamos um arquivo comprimido, agora iremos lê-lo.

dftotal = pd.read_csv("gasolina-etanol.cvs.gzip",delimiter=";",compression='gzip')
print(dftotal)

Vendo colunas do DataFrame

Aqui iremos mostrar como visualizar as colunas de um data frame carregado.

import pandas as pd

dftotal = pd.read_csv("gasolina-etanol.cvs.gzip",delimiter=";",compression='gzip')

dftotal.columns

O resultado é como demonstrado.

Index(['Região - Sigla', 'Estado - Sigla', 'Município', 'Revenda',
       'CNPJ da Revenda', 'Nome da Rua', 'Número Rua', 'Complemento', 'Bairro',
       'Cep', 'Produto', 'Data da Coleta', 'Valor de Venda', 'Valor de Compra',
       'Unidade de Medida', 'Bandeira'],
      dtype='object')

Seguindo o exemplo anterior, a visualização dos dados da Região – Sigla, fica conforme apresentado.

dftotal['Região - Sigla']

Apresentando um resultado, conforme indicado:

0          N
1          N
2          N
3          N
4          N
          ..
251415    SE
251416    SE
251417    SE
251418    SE
251419    SE
Name: Região - Sigla, Length: 251420, dtype: object

HEAD de data frame

A função head, mostra o cabeçalho das funções, conforme apresentado a seguir.

dftotal.head()

O exemplo apresenta um resultado conforme apresentado a seguir.

	Região - Sigla	Estado - Sigla	Município	Revenda	CNPJ da Revenda	Nome da Rua	Número Rua	Complemento	Bairro	Cep	Produto	Data da Coleta	Valor de Venda	Valor de Compra	Unidade de Medida	Bandeira
0	N	AC	RIO BRANCO	AUTO POSTO ISAURAO LTDA	04.594.586/0001-10	RUA ISAURA PARENTE	1412	NaN	ESTACAO EXPERIMENTAL	69918-216	GASOLINA ADITIVADA	02/02/2021	5,29	NaN	R$ / litro	PETROBRAS DISTRIBUIDORA S.A.
1	N	AC	RIO BRANCO	AUTO POSTO ISAURAO LTDA	04.594.586/0001-10	RUA ISAURA PARENTE	1412	NaN	ESTACAO EXPERIMENTAL	69918-216	ETANOL	02/02/2021	4,09	NaN	R$ / litro	PETROBRAS DISTRIBUIDORA S.A.
2	N	AC	RIO BRANCO	AUTO POSTO ISAURAO LTDA	04.594.586/0001-10	RUA ISAURA PARENTE	1412	NaN	ESTACAO EXPERIMENTAL	69918-216	GASOLINA	02/02/2021	5,29	NaN	R$ / litro	PETROBRAS DISTRIBUIDORA S.A.
3	N	AC	RIO BRANCO	COMDEPE COMERCIO DE DERIVADOS DE PETROLEO LTDA	01.198.443/0001-00	AVENIDA NACOES UNIDAS	23	NaN	AVIARIO	69909-720	GASOLINA ADITIVADA	02/02/2021	5,29	NaN	R$ / litro	PETROBRAS DISTRIBUIDORA S.A.
4	N	AC	RIO BRANCO	COMDEPE COMERCIO DE DERIVADOS DE PETROLEO LTDA	01.198.443/0001-00	AVENIDA NACOES UNIDAS	23	NaN	AVIARIO	69909-720	GASOLINA	02/02/2021	5,22	NaN	R$ / litro	PETROBRAS DISTRIBUIDORA S.A.

Média de preço do data frame

No exemplo a seguir usaremos uma média do campo Valor de Venda.

dftotal.mean()

#ou apenas em uma coluna

dftotal['Valor de Venda'].mean()

Contagem de elementos de uma coluna do data frame

dftotal['Data da Coleta'].value_counts()

O resultado fica conforme apresentado, a seguir:

02/06/2021    5882
01/06/2021    5230
05/07/2021    3489
09/06/2021    3420
15/06/2021    3306
              ... 
25/06/2021      16
21/05/2021      15
07/05/2021      15
18/06/2021      10
26/03/2021       3
Name: Data da Coleta, Length: 150, dtype: int64

Ordenando um Data Frame

dfordenado = dftotal.sort_values(by='Data da Coleta')

dfordenado['Data da Coleta']

Ficando o resultado, conforme apresentado a seguir:


3836      01/02/2021
3173      01/02/2021
3174      01/02/2021
3175      01/02/2021
3176      01/02/2021
             ...    
148518    31/05/2021
148517    31/05/2021
148516    31/05/2021
148514    31/05/2021
148524    31/05/2021

As informações acima, estão contidas no repositório do GIT.

https://github.com/marcelomaurin/Analise-de-Preco

maurinsoft.com.br