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