Pyton-jupyter-notebook
Projeto de aprendizado Pyton para Engenheiro de Dados
LISTAS
Definição de Listas: É um objeto representado por uma sequência de outros objetos. Estes objetos são separados por vírgulas e iniciados e terminados pelos colchetes [ ]
Existem algumas formas de criação de listas e eu vou mostrar a maioria delas em alguns exemplos.
A criação de lista e bem simples, basta adicionar o nome da lista com o sinal de = e o cochete []
- criando listas
Exemplo 1
listaGithub = [1,2,3,4]
Como sabemos se isso que criamos é uma lista? Para ter certeza basta comprovar com o TYPE e o nome da lista dentro de parênteses.

Exemplo 2
listaGithub2 = list((1, 2, 3))
Exemplo 3
listaGithub3 = list([1, 2, 3])
Exemplo 4 (Nesse exemplo ele transformou os caracteres em sequência)
listaGithub4 = list("123")

Exemplo 5
listaGithub5 = ['a', 2, 4, 'C']
Exemplo 6
listaGithub6 = [1, [2, 3], 'w']
Exemplo 7
listaGithub7 = [1, (2, 3)]
- Juntando listas
lista1 + lista2
Exemplo 1
listaGithub + listaGithub6

podemos repetir os valores da lista
exemplo 2
listaGithub2*3
- Verificar se um objeto pertence à lista
"1"
- Métodos
apagando elementos da lista
exemplo ( se não adicionar nada no parêntese ele vai apagar o último elemento )
listaGithub7.pop()
Exemplo 2 (ponto + tab + remove)
listaGithub.remove('1')
Exemplo 3 (ordenado)
primeiro vamos criar uma nova lista
lst9 = [3, 9, 1, 0, 3, 10, 4, 6]
ordenar
lst9.sort()

exemplo 4 (reverse)
lst9.sort(reverse=True)
DICIONÁRIOS
Definição de Dicionário: É um objeto que representa a coleção de um ou mais objetos. Cada objeto tem sua chave e seu valor. Assim, para acessar um valor de determinado objeto, basta chamramos sua chave. Os dicionários são iniciados e terminados por chaves { }
- Criando dicionários
dict1 = {'chave1': 'valor1', 'chave2': 'valor2'}
dict2 = dict(a = 1, b=2, c=3, d= 'a')
dict3 = dict([('a', 1), ('b', 2), ('c', 3)])
dict4 = {'chave1': ['valor1', 2, 3], 'chave2': [2, 'idade', 'nome']}
dict5 = {'id': [1, 2, 3], 'user': {'nome': ['Caio', 'Rodrigo', 'Rafael'], 'idade': [29, 30, 29]}}
dict6 = dict(zip(['chave1', 'chave2', 'chave3'], ['valor1', 'valor2', 'valor3']))
dict7 = {'nomes': ('Caio', 'Rafael'), 'idade': (29, 30)}
- Acessando valores do dicionário

Neste caso, como eu faço para acessar o valor da chave1? Então, eu só chamar o nome do dicionário e abrir colchetes, no caso digo o nome da nossa chave.
dict1['chave1']
Outros exemplos
dict1.get('chave2')
dict1.get(list(dict1)[1])
for chave in dict1.keys(): print(chave, dict1[chave])
for chave, valor in dict1.items(): print(chave, valor)
- Juntando dicionários
dict1.update(dict2)

Posso adicionar uma nova chave no dict1
dict1["NOVA CHAVE"] = 1000

DATAFRAMES - CRIANDO
Diferentemente das listas e dicionários, o Dataframe precisa que a gente importe uma biblioteca. Essa biblioteca e o Pandas, ela e muito utilizada para manipulação de dados, criação de tabelas, leitura de CSV, transformação de dados e carregamento, etc. Ou seja, Pandas é uma forte ferramenta de análise e manipulação de dados.
O pandas está simplesmente embutido dentro da linguagem Pyton. A gente consegue criar sem precisar dar nenhum importe.
- Importando o Pandas
import pandas as pd (as pd é um apelido para chamar o pandas)
- Criando DataFrames (pandas.tab)
exemplo 1
df1 = pd.DataFrame()

exemplo 2
dict1 = {'identificacao': [1, 2, 3, 4, 5], 'nome': ['Caio', 'Rodrigo', 'Rafael', 'Mariane', 'Nathane']}
df2 = pd.DataFrame(data = dict1)

exemplo 3 (mudando o índice)
df3 = pd.DataFrame(data = dict1, index = [29, 1, 0, 2222, 88])

exemplo 4 (com series)
serie1 = pd.Series([1, 2, 3])
serie2 = pd.Series(['a', 'b', 'c'])
df4 = pd.DataFrame({'coluna1': serie1, 'coluna2': serie2})

exemplo 5 (numpy)
import numpy as np
array1 = np.array([[1, 2, 3], ['São Paulo', 'Rio de Janeiro', 'Campinas'], ['SP', 'RJ', 'SP']])
df5 = pd.DataFrame(data = array1.transpose(), index = ['linha1', 'linha2', 'linha3'], columns = ['identificacao', 'cidade', 'estado'])

exemplo 6 (matrix)
matriz1 = np.matrix([[1, 2, 3], ['São Paulo', 'Rio de Janeiro', 'Campinas'], ['SP', 'RJ', 'SP']])
df6 = pd.DataFrame(data = matriz1.transpose(), index = ['linha1', 'linha2', 'linha3'], columns = ['identificacao', 'cidade', 'estado'])
DATAFRAMES - SELECIONANDO
- Adicionando uma coluna com valores
exemplo 1
df3.identificacao = df3.identificacao.astype(str) (somando o valor da indentificação em mais 5 e fazendo uma nova coluna com o resultado)

exemplo 2
df3['index'] = 0 Adicionando uma nova coluna com valores 0

exemplo 3
df3[['nome', 'index']] procurando por colunas

exemplo 4
df3[(df3.nome.str.contains('R')) | (df3.identificacao == 5)] Procurando nome que tenha R

exemplo 5 (localização pelo nome dos indices ou colunas)
df3.loc[0]

exemplo 6
df3.iloc[0]

exemplo 7
df3.iloc[0:2] procurando por quantidade de linhas selecionadas

exemplo 8 (retornando todas as linhas de uma coluna)
df3.loc[:, 'nome']

exemplo 9 (mudando valores)
df3.loc[2222, 'nome'] = 'Jeremias

ALGUNS ATRIBUTOS DO DATAFRAME
exemplo 1 ( dtypes = informa qual são as colunas, tipos e valores)
df3.dtypes

exemplo 2 (mudando colunas para string)
df3.identificacao = df3.identificacao.astype(str)
exemplo 3 (lista com todas as colunas)
df3.columns

exemplo 4 ( Shape = característica do dataframe: quantidade de linhas e colunas)
df3.shape
exemplo 5 (valores do dataframe)
df3.values

Métodeos
- combine_first
df3.teste1.combine_first(df3['identificacao_mais_5'])

- copy
df1000 = df3.copy()

- count
df1000.count()

- drop
df3.drop(columns = ['index_MODIFICADO')

- drop_duplicates
´df7 = pd.concat([df1000, df1000])´

- dropna
df8 = df7.copy()
df8.dropna(inplace=True)

- fillna
df7.fillna('NULO', inplace=True)

- head
df7.head(2)

- tail
df7.tail(2)

- groupby
df10 = pd.concat([df1000, df1000])
df10.groupby(['nome']).identificacao_mais_5.sum()

- isin
-
Criar um DataFrame de exemplo
df = pd.DataFrame({'A': [1, 2, 3, 4], 'B': ['foo', 'bar', 'baz', 'qux']})
-
Verificar se os valores da coluna 'B' estão em uma lista específica
filtro = df['B'].isin(['foo', 'baz'])
-
Aplicar o filtro ao DataFrame
resultado = df[filtro]
print(resultado)

- Operações Matemática
df3.identificacao_mais_5.min()
df3.identificacao_mais_5.max()
df3.identificacao_mais_5.mean()
df3.identificacao_mais_5.median()
df3.identificacao_mais_5.sum()

- notnull
- um DataFrame de exemplo com valores nulos
dados = {'A': [1, 2, None, 4], 'B': [5, None, 7, 8]}
df = pd.DataFrame(dados)
- Verificar se os valores são não nulos
resultado = pd.notnull(df) print(resultado)

- rename
df3.rename(columns={'nome': 'Nome'}, inplace=True)
df3.rename(index={2222: -1}, inplace=True)
![32](h