BIG DATA E DATA SCIENCE

Aula 1- 05/10/2016 - Introdução ao Python

Prof: Anna Carolina Barros

Tópico 0 - Conhecendo o Jupyter Markdown

O Jupyter Notebook é a evolução do IPython Notebook, é orientado por células onde são inseridos os códigos e logo abaixo o resultado é disponibilizado. Para "rodar uma célula" basta usar os comandos "SHIFT + Enter".

No exemplo abaixo faremos a soma entre 5+8

In [5]:
5+8
Out[5]:
13

Tópico 1 - Operadores Lógicos

Operadores Lógicos realizam o cálculo em si e geram um resultado em formato de número.

Operação Operador
Soma +
Subtração -
Divisão /
Divisão Inteira //
Potência **
Módulo (resto da divisão) %

Exercício 1

Resolva a equação:

$a= 15$ $b= 25$

$c=a^b$ $d=\left(\sqrt[3]{c} \right)^b$

a) Resolva C.

b) Quanto vale d?

In [6]:
##########Resolva Aqui###########################

Tópico 2 - Operadores Lógicos

Operadores Lógicos realizam testes, o resultado é uma váriável booleana(TRUE ou FALSE).

Operação Operador
Iguadade ==
Diferença !=
Maior >
Menor <
E and
Ou or
Afirmação is
Negação not

Exemplo 1

$\sqrt[3]625$ é maior que $5^4$?

In [7]:
5>12
Out[7]:
False

Exercício 2

nome1="Anna Carolina" e nome2="anna carolina"

nome1 é igual à nome2?

In [ ]:
 

Exemplo 2

256 é par?

In [8]:
256 % 2==0
Out[8]:
True
In [ ]:
 

Tópico 3 - Objetos

São destinados a guardar temporariamente valores calculados.Para atribuir um objeto à um valor use o operador "=".Os tipos mais usados são:

Unitário

  • Inteiro
  • String
  • Unicode
  • Booleano

Uma Dimensão

  • Listas

Mais de Uma dimensão

  • tuplas
  • Dicionários
  • Frames

Tópico 3.1 - Objetos Unitários

Armazenam uma única informação

  • Inteiro: São números.

Exemplo 3

Tome:

$a=3$ e $b=3$, calcule $a+b$.

In [9]:
a=3
b=3

a+b
Out[9]:
6

-Strings: Caracteres, nomes, frases,textos, códigos ...

Exemplo 4

Crie uma váriável com seu primeiro nome, uma segunda variável com seu segundo nome e me retorne uma terceira variável com seu nome completo.

In [10]:
Nome=" Anna"
Sobrenome= "Carolina"
nome_completo=Nome+ Sobrenome
In [11]:
nome_completo[3]
Out[11]:
'n'
In [12]:
nome_completo.count("a")
Out[12]:
3
In [1]:
numero=3
character=str(numero)
print(character)
3
  • Booleana : Usados para saber/controlar se uma situação é verdadeira ou falsa
Exemplo 5
In [16]:
a=(6/2*3)==(3*3)
print(a)
True
In [ ]:
 

Tópico 3.2 - Objetos com uma dimensão

Armazenam uma sequência de informações

ATENÇÃO!

Em python as sequências iniciam a partir do 0 e encerram uma unidade antes do tamanho do objeto.

  • Listas
In [17]:
nomes=["Anna","Ingrid","Pedro","Paulo"]
idades=[30,25,28,27]

Exemplo 5

Qual é o tamanho das listas?

In [18]:
len(nomes)
len(idades)
Out[18]:
4

Me retorne o primeiro elemento de cada lista:

In [ ]:
 

Exercício 3

Qual é a média das idades?

In [ ]:
 

Exercício 4

Tome a seguinte lista:

numeros=[60,65,80,85,100,150]

Retorne os maiores que 50

In [19]:
numeros=[60,65,80,85,100,150]

maior_que_80=[x for x in numeros if x>80]
maior_que_80
Out[19]:
[85, 100, 150]
  • Tuplas: São uma sequência de objetos imutáveis
In [6]:
minha_tupla=("Anna",1,(1,2))
minha_tupla
Out[6]:
('Anna', 1, (1, 2))
In [11]:
minha_tupla[0]="nome"
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-11-23dc06b50aba> in <module>()
----> 1 minha_tupla[0]="nome"

TypeError: 'tuple' object does not support item assignment

Tópico 3.3 - Objetos com mais uma dimensão

  • Dicionário: Pode ser considerado como container que armazena dados através de chaves. Diferente das listas e tuplas o dicionário não é uma sequência. Esse objeto é formado por chaves e cada chave está atribuída a um objeto, que porm ser listas, strings, números, tuplas ou outros dicionários.

Exemplo 6

Crie um dicionario para nomes e idades

In [20]:
dic={'id_dicionario':'primeiro_dicionario','nomes':['Anna','Ingrid','Pedro','Paulo'],'idades':[30,25,28,27]}
In [21]:
dic['idades']
Out[21]:
[30, 25, 28, 27]

Exemplo 7

Criando de maneira mais prática

In [22]:
dic2={'nomes':nomes,'idades':idades}

Adicionando chave ao dicionário

In [23]:
dic2['idade_quadrado']=dic2['idades']*2
dic2
Out[23]:
{'idade_quadrado': [30, 25, 28, 27, 30, 25, 28, 27],
 'idades': [30, 25, 28, 27],
 'nomes': ['Anna', 'Ingrid', 'Pedro', 'Paulo']}

Tópico 4 - Trabalhando com data frames

Data Frames são objetos utilizados para armazenar tabelas de dados. Para trabalhar com data frames em python é necessário fazer uso do pacote pandas, para chama-lo basta escrever:



import pandas as pd

In [2]:
import pandas as pd

Exemplo 8

Vamos criar, através de um dicionário, um frame com a população de alguns estados dos Estados Unidos por ano.

In [25]:
data = {'state': ['Ohio', 'Ohio', 'Ohio', 'Nevada', 'Nevada'],'year': [2000, 2001, 2002, 2001, 2002],'pop': [1.5, 1.7, 3.6, 2.4, 2.9]}
frame = pd.DataFrame(data)
frame
Out[25]:
pop state year
0 1.5 Ohio 2000
1 1.7 Ohio 2001
2 3.6 Ohio 2002
3 2.4 Nevada 2001
4 2.9 Nevada 2002

Para acessar uma coluna específica

In [26]:
frame.iloc[0, 0]
Out[26]:
1.5

Exemplo 9

Acesse a coluna estado do frame

In [27]:
frame['state']
Out[27]:
0      Ohio
1      Ohio
2      Ohio
3    Nevada
4    Nevada
Name: state, dtype: object

Exercício

Calcule a média da população

In [ ]:
 

Tópico 4.1 - Criando Data Frames através de listas

Retomando as listas de idades e nomes:

In [28]:
frame_pessoas=pd.DataFrame([nomes,idades]).transpose()
frame_pessoas.columns=["nomes","idades"]

frame_pessoas
Out[28]:
nomes idades
0 Anna 30
1 Ingrid 25
2 Pedro 28
3 Paulo 27

Tópico 4.2 - Exportando seu arquivo

Nem sempre seus resultados serão usados somente em python, muitas vezes outras pessoas desejarão ter acesso a esses dados fazendo uso de outros softwares.

In [29]:
pd.DataFrame.to_csv(frame_pessoas,"pessoas.csv",sep=";")

Tópico 4.3 - Lendo Arquivos Externos

Nem todo mundo usa Python, então muitas vezes é necessário ler dados de fontes externa.

Exemplo 10

Vammos importar o arquivo com os dados semanais dos preços de combustíveis da ANP. Para isso o primeiro passo é forncer o endereço da pasta onde o arquivo está localizado.

In [4]:
data_path="C:\\Users\\ac_ba\\Dropbox\\Curso_Python\\datasets\\"
postos = pd.read_csv(data_path+"dados_anp2.csv",delimiter=";",decimal="," ,encoding="latin1")
postos
Out[4]:
RAZAO SOCIAL ENDERECO BAIRRO BANDEIRA PRECO VENDA PRECO COMPRA MODALIDADE DE COMPRA FORNECEDOR DATA COLETA CIDADE UF COMBUSTIVEL
0 Auto Posto Lacasema Ltda Avenida Almte Jair Carneiro Toscano de Brito, 417 Parque das Palmeiras RAIZEN 4.198 - - - 13/09/2016 ANGRA DOS REIS RJ Gasolina
1 Imperial Angra Auto Posto Ltda Rua das Palmeiras, 210 Parque das Palmeiras RAIZEN 4.220 - - - 13/09/2016 ANGRA DOS REIS RJ Gasolina
2 Posto Praia da Ribeira Ltda Rodovia Br 101, S/n Km 487,8 - Lado Esquerdo Belem Tq. da Japuiba PETROBRAS DISTRIBUIDORA S.A. 4.278 3,580 CIF - 13/09/2016 ANGRA DOS REIS RJ Gasolina
3 Auto Posto Japuíba Ltda. Rodovia Governador Mário Covas, S/n Km 96 + 400 Japuiba IPIRANGA 4.279 3,580 CIF - 13/09/2016 ANGRA DOS REIS RJ Gasolina
4 Posto dos Pescadores Ltda. Alameda Industria, 309 Centro PETROBRAS DISTRIBUIDORA S.A. 4.329 3,468 FOB - 13/09/2016 ANGRA DOS REIS RJ Gasolina
5 Golfinho Comercio Derivados de Petroleo Ltda Rua Doutor Coutinho, 8 Loja A Cais de Santa Luzia RAIZEN 4.400 3,598 CIF - 13/09/2016 ANGRA DOS REIS RJ Gasolina
6 Posto Imperial Bracuí Tda. Rodovia Mário Covas, S/n Km 113 Bracuí RAIZEN 4.490 3,409 CIF - 13/09/2016 ANGRA DOS REIS RJ Gasolina
7 Posto Marina Piratas Mall Ltda Estrada das Marinas, 91 Praia do Jardim IPIRANGA 4.899 - - - 13/09/2016 ANGRA DOS REIS RJ Gasolina
8 ,gecylandia Auto Serviço Ltda Rodovia Amaral Peixoto, S/n Km 94 Iguabinha BRANCA 3.590 - - - 14/09/2016 ARARUAMA RJ Gasolina
9 Posto Atlântico de Praia Seca Ltda Rua D Rod. Cabo Frio Km 13 Lote 272 Q. 20, S/n Praia Seca BRANCA 3.849 - - - 14/09/2016 ARARUAMA RJ Gasolina
10 Posto de Combustível Capri Lagos Ltda. Rodovia Amaral Peixoto, 90130 Vila Capri BRANCA 3.889 3,258 FOB TOBRAS 14/09/2016 ARARUAMA RJ Gasolina
11 Posto Tres Amigos Ltda Rodovia Rio Bonito Araruama, S/n Km 35 Itatiquara BRANCA 3.889 3,307 CIF TOBRAS 14/09/2016 ARARUAMA RJ Gasolina
12 Garcia Tinoco Comércio de Combustíveis Ltda. Rodovia Amaral Peixoto, S/n Loteamento Novo Ho... Parati BRANCA 3.892 3,251 CIF RAIZEN 14/09/2016 ARARUAMA RJ Gasolina
13 Mataruna Auto Posto Ltda. Praca Ary Parreiras, S/n Centro IPIRANGA 3.958 - - - 14/09/2016 ARARUAMA RJ Gasolina
14 Auto Posto 151 Ltda Avenida John Kennedy, 220 Centro IPIRANGA 3.989 - - - 14/09/2016 ARARUAMA RJ Gasolina
15 Centro Automotivo Praia dos Coqueiros Rodovia Amaral Peixoto, 90031 Km 88 Praia dos Coqueiros PETROBRAS DISTRIBUIDORA S.A. 3.990 - - - 14/09/2016 ARARUAMA RJ Gasolina
16 Bellas & Barcelos Ltda. Rodovia Amaral Peixoto, S/n Km 86 Centro PETROBRAS DISTRIBUIDORA S.A. 3.990 - - - 14/09/2016 ARARUAMA RJ Gasolina
17 Silva & Abrantes Ltda Rua Oscarino P. de Andrade, 10 Sao Vicente de Paula BRANCA 3.990 - - - 14/09/2016 ARARUAMA RJ Gasolina
18 Auto Posto Pontocom Ltda Avenida Getúlio Vargas, 1320 Centro PETROBRAS DISTRIBUIDORA S.A. 3.999 - - - 14/09/2016 ARARUAMA RJ Gasolina
19 Posto Zambeli Ltda Rua Jose Alves Pimenta, 1616 Matadouro BRANCA 3.879 - - - 13/09/2016 BARRA DO PIRAI RJ Gasolina
20 Posto Belvedere da Taquara Ltda. Rodovia Lucio Meira Br 393, S/n Km 255,7 Belvedere BRANCA 3.899 3,225 CIF 76 OIL 13/09/2016 BARRA DO PIRAI RJ Gasolina
21 Posto de Gasolina Estação 3 Estrelas Ltda. Rodovia Lúcio Meira Br 393, S/nº Km 269 Dorandia BRANCA 4.099 3,545 CIF ALE COMBUSTÍVEIS 13/09/2016 BARRA DO PIRAI RJ Gasolina
22 Posto Belvedere da Barra Ltda Rodovia Lucio Meira - Br 393, S/n Km 255,6 Belvedere da Taquara PETROBRAS DISTRIBUIDORA S.A. 4.140 - - - 13/09/2016 BARRA DO PIRAI RJ Gasolina
23 Matagal Auto Posto Ltda Estrada Rj 137, 11006 0 Ipiabas IPIRANGA 4.140 3,701 CIF - 13/09/2016 BARRA DO PIRAI RJ Gasolina
24 Posto de Combustiveis Gomes Figueiredo Ltda - ... Rua Franklin de Moraes, S/n Area A Box 1e2 80a... Centro PETROBRAS DISTRIBUIDORA S.A. 4.140 3,491 CIF - 13/09/2016 BARRA DO PIRAI RJ Gasolina
25 Posto Nova Barra Ltda. Avenida Prefeito Arthur Costa, 550 Muqueca PETROBRAS DISTRIBUIDORA S.A. 4.149 - - - 13/09/2016 BARRA DO PIRAI RJ Gasolina
26 Posto de Combustiveis Jalisco Ltda Rua Angelica, 127 Centro RAIZEN 4.150 - - - 13/09/2016 BARRA DO PIRAI RJ Gasolina
27 Postos Colorado Ltda Rua Luiz Barbosa, 411 Matadouro RAIZEN 4.169 - - - 13/09/2016 BARRA DO PIRAI RJ Gasolina
28 Posto São Francisco de Assis Ltda. Avenida Presidente Kennedy, 2457 Ano Bom BRANCA 3.749 3,220 CIF 76 OIL 15/09/2016 BARRA MANSA RJ Gasolina
29 Auto Posto Barra do Vale Ltda. Avenida Presidente Kennedy, 3601 Ano Bom BRANCA 3.849 - - - 13/09/2016 BARRA MANSA RJ Gasolina
... ... ... ... ... ... ... ... ... ... ... ... ...
20383 Rod Oli Comercio de Combustiveis Ltda- Me Avenida Filadelfia, 5561 Quadra 05 Lote 01 Santa Terezinha SABBA 3.149 - - - 13/09/2016 ARAGUAINA TO Diesel S10
20384 Auto Posto Formula 1 Ltda - Epp Rua 13 de Maio, 1.030 Quadra90 ... Centro PETROBRAS DISTRIBUIDORA S.A. 3.150 - - - 13/09/2016 ARAGUAINA TO Diesel S10
20385 Arantes - Derivados de Petroleo Ltda Avenida Filadelfia, 3071 Loteamento Dona Nelcia PETROBRAS DISTRIBUIDORA S.A. 3.170 - - - 13/09/2016 ARAGUAINA TO Diesel S10
20386 Thawan Comercio de Combustiveis Ltda Avenida Neblina, 21 Quadra 24-a / Lote 01 Centro PETROBRAS DISTRIBUIDORA S.A. 3.170 2,716 FOB - 13/09/2016 ARAGUAINA TO Diesel S10
20387 Posto Boiadeiros Comércio de Derivados de Petr... Avenida Bernardo Sayao, 581 Entroncamento SABBA 3.260 - - - 13/09/2016 ARAGUAINA TO Diesel S10
20388 Posto Beira Rio Comercio de Derivados de Petro... Avenida Pará, 2322 Qd 11 Lt 05 Waldir Lins ZEMA 3.120 - - - 12/09/2016 GURUPI TO Diesel S10
20389 Sanches e Cabral Ltda. Rodovia Br 153, S/n Km. 675 Zona Rural IPIRANGA 3.129 - - - 12/09/2016 GURUPI TO Diesel S10
20390 Auto Posto Cometa Ltda. Avenida Goiás, 2844 Nossa Senhora da Abadia BRANCA 3.140 - - - 12/09/2016 GURUPI TO Diesel S10
20391 Honório & Tolentino Ltda. Rua Senador Pedro Ludovico, 1283 Centro BRANCA 3.140 - - - 12/09/2016 GURUPI TO Diesel S10
20392 M. J. Lima de Assis Rua 31 de Março, 1619 Centro BRANCA 3.150 2,640 CIF TOTAL 12/09/2016 GURUPI TO Diesel S10
20393 Rossato & Borges Ltda - Epp Avenida Goias, 1920 Centro ALESAT 3.169 - - - 12/09/2016 GURUPI TO Diesel S10
20394 Décio Auto Posto Gurupi Ltda Rodovia Br 153, S/n Km 667 Anexo 01 Zona Rural PETROBRAS DISTRIBUIDORA S.A. 3.790 - - - 12/09/2016 GURUPI TO Diesel S10
20395 Petrolider-comercio de Combustiveis e Derivado... Avenida Ns 04 704 Sul(arse 71) Lote 19a, Pac, S/n Plano Diretor Sul BRANCA 2.900 - - - 13/09/2016 PALMAS TO Diesel S10
20396 Silvano e Silvano Ltda. 501 Sul Avenida Lo 11 Lote 24 (acsu-s050 Conju... Plano Diretor Sul PETROBRAS DISTRIBUIDORA S.A. 3.149 - - - 13/09/2016 PALMAS TO Diesel S10
20397 Santana e Castro Ltda Q 207 Sul Pac Lote 01 Av. Ns 07, S/n Plano Diretor Sul CBPI 3.150 2,610 CIF - 13/09/2016 PALMAS TO Diesel S10
20398 Petro - Postos de Abastecimento Ltda. Avenida Ns - 1, S/n Arso 21 Centro BRANCA 3.150 2,822 CIF PETROBRAS DISTRIBUIDORA S.A. 13/09/2016 PALMAS TO Diesel S10
20399 Auto Posto de Combustiveis Serra do Carmo Ltda Avenida Ns 10 Arne 54 - Pac, S/n Lote 1 Centro BRANCA 3.160 2,785 CIF PETROBRAS DISTRIBUIDORA S.A. 13/09/2016 PALMAS TO Diesel S10
20400 Posto de Combustiveis 32 Ltda Avenida Ns 05 Arno 32 Pac, S/n Lote 01 305 Norte BRANCA 3.169 - - - 13/09/2016 PALMAS TO Diesel S10
20401 Auto Posto Carneirão Ltda. Rodovia Br 153 - Km 499, S/n Zona Rural RAIZEN 2.969 - - - 12/09/2016 PARAISO DO TOCANTINS TO Diesel S10
20402 Lopes & Marinho Ltda Avenida Castelo Branco, 1111 Centro PETROBRAS DISTRIBUIDORA S.A. 3.050 2,809 CIF - 12/09/2016 PARAISO DO TOCANTINS TO Diesel S10
20403 Posto de Combustiveis Ecopetro Ltda Avenida Transbrasiliana, Sn Qd 78 Lts 09 A 11 Centro BRANCA 3.090 2,778 FOB PETROBRAS DISTRIBUIDORA S.A. 12/09/2016 PARAISO DO TOCANTINS TO Diesel S10
20404 Distribuidora de Petróleo Tocantins Ltda. Rua 20, 767 Centro BRANCA 3.090 - - - 12/09/2016 PARAISO DO TOCANTINS TO Diesel S10
20405 Auto Posto de Combustiveis Serrano Ltda Qd 163 - Avenida Padre Pelágio, S/n Esquina Co... Setor Central IPIRANGA 3.099 - - - 12/09/2016 PARAISO DO TOCANTINS TO Diesel S10
20406 Medeiros e Cabral Ltda. Avenida Transbrasiliana, 1533 Qd. 89, Lts. 01 ... Setor Interlagos BRANCA 3.270 2,800 FOB PETROBRAS DISTRIBUIDORA S.A. 12/09/2016 PARAISO DO TOCANTINS TO Diesel S10
20407 Posto Milena Ltda Avenida B, Sn Quadra 28, Lotes 09,10,11 e 12 Vila Milena IPIRANGA 3.290 2,802 FOB - 12/09/2016 PARAISO DO TOCANTINS TO Diesel S10
20408 Medeiros Comércio Varejista de Combustíveis Ltda. Avenida Transbrasiliana, 961 Quadra 80, Lotes ... Centro PETROBRAS DISTRIBUIDORA S.A. 3.350 - - - 12/09/2016 PARAISO DO TOCANTINS TO Diesel S10
20409 Leobas e Barreira Ltda Praça do Centenário, 605 Centro BRANCA 2.940 - - - 13/09/2016 PORTO NACIONAL TO Diesel S10
20410 Leobas e Leobas Ltda Loteamento Residencial Jardim do Porto, S/n Qu... Luzimangues BRANCA 3.010 2,830 FOB TOTAL 13/09/2016 PORTO NACIONAL TO Diesel S10
20411 Leobas e Barreira Ltda Avenida Joaquim Aires C/ Av Padre Luso, 662 Centro BRANCA 3.100 - - - 13/09/2016 PORTO NACIONAL TO Diesel S10
20412 Auto Posto Nossa Senhora de Fatima Ltda Rua Aires Joca, S/n Quadra 261, Lote 01 A 04 e 15 Jardim Porto Imperial PETROBRAS DISTRIBUIDORA S.A. 3.100 - - - 13/09/2016 PORTO NACIONAL TO Diesel S10

20413 rows × 12 columns

In [ ]:
quantidade_postos= pd.DataFrame((postos.groupby(['COMBUSTIVEL']).size()))
quantidade_postos

Tópico 5 - Estruturas de Condição

São estruturas que executam um comando, caso uma condição seja atendida. No caso faremos uso dos comandos if e else.

Exemplo 11

Tome $a=3$ e $b=5$, retorne quem é o maior valor:

In [82]:
a=3
b=5

if a>b:
    print("a é maior que b")
else:
    print("b é maior que a")
b é maior que a

Exemplo 11

E se a for igual a 5?

In [83]:
a=5
b=5

if a>b:
    print("a é maior que b")
if a<b:
    print("b é maior que a")
else:
     print("São iguais")
São iguais

Exemplo 12

A média em uma dada escola é determinada pela média da p1,p2 e p3, e seu valor mínimo para ser aprovado é 7. Um aluno tirou p1=3.5, p2=7.5 p3=9, me retorne se ele passou ou reprovou

In [ ]:
 

Tópico 6 - Estruturas de Repetição

São estruturas que executam comandos repetidamente. As estruturas mais usadas são:

  • While
  • For

Tópico 6.1 - Estrutura While

É uma estrutura que executa repetidamente um comando enquanto uma condição estiver sendo atendida.

Exemplo 13

Faça $a=7$, crie um comando que retorne retorne o valor de $a$, o incremente em uma unidade, enquanto $a$ for menor que 20.

In [85]:
a=7

while a<20:
    print (a)
    a=a+1
    
7
8
9
10
11
12
13
14
15
16
17
18
19

Exercício

Tome as listas

  • lista1=[1,2,3,4,5,6,7,8,9,10]
  • lista2=[6,8,9,7,2,4,5,10,9,3]

Faça uma estrutura que retorna os elementos da primeira lista, enquanto estes forem menores que os elementos da segunda.

In [ ]:
 

Tópico 6.2 - Estrutura For

É uma estrutura que executa repetidamente um comando enquanto uma condição estiver sendo atendida.

Exemplo

Tome a lista abaixo:

numeros=[1,2,3,4,5,6,7,8,9,10]

Me retorne cada elemento da lista

In [15]:
numeros=[1,2,3,4,5,6,7,8,9,10]
for i in range(0,10):
    print(numeros[i])
1
2
3
4
5
6
7
8
9
10
In [ ]:
 

Exercícios

Leia o arquivo "populacao.csv" e responda as questões:

  • a) Qual o percentual de homem e mulher?
  • b) Qual região é a mais populosa?
  • c) Qual é média de idades por genero?
  • d) Exporte cada um dos seus resultados para o formato ".csv"
In [ ]: