Skip to content
Get App

Aula 04 - Introdução à Estatística I

Minicurso de Pandas com o PET Estatística da UFSCar: manipulação de dados tabulares, DataFrames, dados faltantes, groupby, merge/concat e visualização com Matplotlib.

Key Takeaways

  • Operações vetorizadas do NumPy são muito mais rápidas que loops for sobre listas
  • Pandas organiza dados tabulares em DataFrames, facilitando inspeção, filtragem e agregação
  • Tratar dados faltantes e usar groupby são etapas essenciais em análises reais
  • Praticar com o dataset disponibilizado é a melhor forma de fixar o conteúdo

What the video covers

  • Introdução às bibliotecas NumPy, Pandas e Matplotlib para análise de dados em Python
  • Diferenças entre listas e arrays NumPy, com exemplos de operações vetorizadas
  • Criação de DataFrames a partir de dicionários e diferença entre Series e DataFrame
  • Carregamento e inspeção de datasets (CSV/Excel) com describe, info e count
  • Seleção, filtragem e criação de colunas em DataFrames com loc e iloc
  • Tratamento de dados faltantes (NaN), com dropna e análise de nulos
  • Agregação por categoria com groupby e cálculo de somas e médias
  • Combinação de tabelas com concat e merge
  • Visualização de dados com Matplotlib, incluindo histogramas e gráficos de barras, com títulos e rótulos
  • Materiais disponibilizados no GitHub: slides em PDF, notebook Jupyter e datasets

Answers

Questions about this video

Qual é o objetivo principal deste minicurso?

O objetivo é ensinar a usar o Pandas para carregar, inspecionar, filtrar e transformar dados tabulares, além de integrá-lo com NumPy e Matplotlib. Também são abordados tratamento de dados faltantes, agregações e combinação de tabelas.

Quais materiais são disponibilizados aos participantes?

Os palestrantes disponibilizaram no GitHub a apresentação em PDF, um notebook Jupyter com o código e dois datasets usados no exemplo de concat. Os participantes podem acompanhar a prática pelo Google Colab.

Qual a diferença entre uma lista e um array no Python, segundo a aula?

Listas podem conter elementos de tipos diferentes e são armazenadas elemento a elemento na memória, enquanto arrays do NumPy exigem elementos do mesmo tipo e são guardados em bloco único. Por isso, arrays permitem operações vetorizadas muito mais rápidas.

Full Transcript — Download SRT & Markdown

00:03
Speaker A
OK, estamos ao vivo. Eh, boa noite, pessoal. Bem-vindos a nossa a nossa aula 04 do ECD. Eh, hoje com a gente tá o pessoal do PET de estatística, o Mateus e o Maurício. E hoje eles vão dar pra gente um minicurso
00:22
Speaker A
de pandas. Eh, boa, boa noite, tudo bem? Eu sou o Mateus e aqui a gente vai apresentar um como que a gente vai usar o pandas pra gente conseguir mexer com dados tabulares e como que a gente vai poder
00:40
Speaker A
usar no nosso dia a dia mesmo quando você recebeu, por exemplo, um arquivo CSV, um arquivo Excel.
00:46
Speaker A
Vamos lá. É isso. Boa noite, gente. Eu sou o Maurício e bom, é isso. A gente vai, a gente é do P estatística, como o Felipe disse, e a gente vai tentar passar um pouco para vocês de como mexer
00:59
Speaker A
com essas com a biblioteca do Pandas e mais algumas para conseguir extrair informações de dados.
01:07
Speaker A
Vamos lá. Eh, basicamente aqui a introdução sobre o que que a gente vai falar no minicurso de hoje. A gente vai apresentar para vocês essas três bibliotecas, a NPI, que a gente utiliza para vetores e operações numéricas. Então, tipo, para fazer
01:22
Speaker A
operações com, por exemplo, soma, se a gente quer o valor máxo, valor mínimo, se a gente quer adicionar, tipo, criar um vetor novo, também tem como. Eh, o pandas, que é utilizado para dados tabulares, para tabelas e tudo mais, que
01:36
Speaker A
também dá para fazer várias operações, como a gente vai ver ao longo do minicurso, e o Matchplot liba visualização dos dados. Então, a gente consegue a partir dessa biblioteca fazer vários tipos de de gráficos, eh, histogramas, gráfico de
01:51
Speaker A
barras e tudo mais, pra gente conseguir visualizar os dados que a gente vai ter nas tabelas do Pandas.
01:59
Speaker A
Exatamente. Então, só pra gente mostrar para vocês, o nosso código já está no GitHub. Eu vi que já foi enviado aí no chat. E a qualquer momento que vocês quiserem tirar uma dúvida, vocês quiserem eh que a gente retome algo,
02:11
Speaker A
vocês não entenderam, é só mandar mensagem aí que a gente vai ler, vai responder. E se quiser fazendo junto com a gente também, que a gente vai deixar o nosso arquivo, o nosso dataset no GitHub, é só ele baixar, vou mostrar
02:22
Speaker A
para vocês. Mas assim, primeiro eu vou explicar para vocês o objetivo da apresentação, que é realmente entender a relação entre Python no pai e pandas e carregar e inspeccionar dados, selecionar, filtrar e alterar um dataframe. A gente vai entender também o
02:38
Speaker A
que é um data frame em si. A gente vai trabalhar com dados faltantes, agregar com group buy. Você às vezes quer saber, ah, por categoria, como que tá meus dados, a gente consegue fazer isso, combinar tabelas com mer com cat, são
02:53
Speaker A
duas vezes diferentes, integrar pandas com num pai e me platilib e salvar o resultado de CSV e conhecer outros formatos também.
03:02
Speaker A
É, além disso, como salvar, por exemplo, se eu fizer um gráfico, como salvar o gráfico ou salvar os dados que eu obtive, tipo as informações que eu extraí.
03:14
Speaker A
Eh, então é só vocês virem aqui no nosso GitHub. Deixa eu pegar o link aqui que já foi enviado.
03:23
Speaker A
Eh, tá aqui. Vocês acessando eles aqui já vai ter o minicur de pandas PDF. Aqui vocês podem baixar se vocês quiserem.
03:31
Speaker A
Eh, vai ter toda a apresentação também a gente vai ter o Aulas Pandas ANB, que é o arquivo Júpiter Notebook, que a gente vai fazer rodar por ele aí.
03:46
Speaker A
E o dataset, a gente tem dois datasets, o dataset padrão e o dataset 2, que a gente vai usar para fazer o concat.
03:53
Speaker A
Vocês vão ver aqui que vai ser esse conjunto de dados aqui que a gente vai usar na nossa apresentação também. Vocês vão podem ir fazendo junto com a gente, tá? Deixa eu voltar aqui, tá? Primeira coisa que na no Python você vai ter que
04:10
Speaker A
eh importar sua biblioteca. Então, a gente vai importar o num pai e o pandas plot. Pip plot. E esse s é simplesmente uma um apelido que você vai dar paraa sua pra sua biblioteca. Por exemplo, toda vez que você for fazer alguma
04:25
Speaker A
função do num pai, para você não escrever num pai sempre, já é convenção dos programadores em Python usar NP. Do pandas, a mesma coisa, PD e o MP plot lip pipel plot PLT. Então vai ficar muito mais fácil, você não vai ter que
04:37
Speaker A
ficar escrevendo toda hora mesplotip.piplot pipelot ponto e a função dele. Bom, é isso. Agora, um pouco mais no começo, a gente vai falar um pouco sobre listas e arrays, eh, e um pouco sobre diferenças entre eles, com alguns
04:52
Speaker A
exemplos. Então, basicamente, a lista no Python, ela pode ter elementos de vários tipos. Pode ser por, pode ser um número inteiro, pode ser um uma string, pode ser um valor buleano.
05:06
Speaker A
Já no array, eh, obrigatoriamente precisam ser todos os elementos que estão dentro desse array serem do mesmo tipo, ou todos numéricos, todos na string e tudo mais. E também o que diz ali que é guardado separadamente na memória cada elemento da lista, enquanto
05:22
Speaker A
no array é num bloco só. Uhum. Aí pode passar aí que vai ter o exemplo.
05:30
Speaker A
Aqui a gente tem, a gente criou primeiro a lista 10 20 30 40 e a gente vai criar um array do num pai, simplesmente usando essa lista.
05:41
Speaker A
Eh, então quando você vai fazer uma lista vezes do e uma um arrway xes do vai dar coisa diferente. Se a gente for ver a lista vai ser duas vezes a própria lista. Então 10 20 30 40 20 30 40. Já o
05:55
Speaker A
ar, ele nos permite a gente fazer operações vetorizadas, então vai ficar 20, 40, 60, 80. Isso é muito importante porque a gente não vai precisar fazer um for. Nesse caso aqui é um conjunto com poucos dados, são quatro eh elementos na
06:09
Speaker A
nossa lista. Porém, vocês vão ver que quando a gente quiser fazer uma uma operação linha a linha ou coluna a coluna, usando um array, fica muito mais rápido, tipo assim, infinitamente mais rápido.
06:26
Speaker A
E aqui a gente mostrou para vai mostrar para vocês também como se cria um dicionário e transforma no data frame.
06:37
Speaker A
Eh, a gente definiu um dicionário chamado dados. que tem o nome Ana, Bruno e Carlos com as idades respectivas de cada um, 25, 32 e 28. Então, simplesmente ele vai fazer uma tabela com as colunas nome, idade e
06:56
Speaker A
respeitando o nome Ana 25, Bruno 32 e Caso 38. 28, como vocês podem ver aqui.
07:08
Speaker A
Então, para mim tá com um pouco de, não sei se só para mim tá com um pouco de delay quando você troca o slide.
07:12
Speaker A
[roncando] Deixa eu ver. Ah, deixa eu fazer uma coisa aqui. Talvez só deixa eu compartilhar o eh a janela fica mais rápido, talvez.
07:50
Speaker A
Mas só explicando, né, aquele exemplinho com só com dicionário é mais um exemplo básico para gerar um datafame um pouco mais simples, mas no no decorrer da aula a gente vai mostrar como fazer os dataframes com as bases de dados
08:05
Speaker A
maiores. Assim, é claro que a a que a gente trouxe aqui não é muito grande, mas já dá para ter uma noção melhor.
08:11
Speaker A
Uhum. E agora passando um pouco sobre a diferença de uma series e o de um data frame.
08:17
Speaker A
Basicamente, eh, vai ter um exemplo ali depois, mas uma surve vai ser basicamente eh, como tá escrito ali, cada valor é associado associado a um identificador que serve para acessá-lo. Vai ser basicamente o que seria no nosso data frame, uma
08:33
Speaker A
coluna apenas, né? Então, passa, não, melhor não, mas basicamente é isso. Já o data frame, como tá escrito ali, são várias colunas alinhadas pelo mesmo índice, o que vai dar, tipo, uma informação inteira, né? Então, por exemplo, no, volta lá no nome idade, na
08:49
Speaker A
primeira coisa uma series seria só o uma teria uma coluna só com o nome, por exemplo, 01 2 com Ana, Bruna e Carlos, ou então uma series só com a idade que seria 01 2 e 25, 32 e 28, como a gente
09:04
Speaker A
vai ver mais paraa frente. E o data frame em si seria essa tabela inteira com as duas variáveis, o nome e a idade, tá? Tá aí, pode.
09:15
Speaker A
Então, a gente vai ver aqui que a gente pode simplesmente acessar, como o Maurício falou, o a idade transformando a Sir idade eh com 01 2. E aqui o type da dessa sirvia é uma sirvia.
09:30
Speaker A
E agora a gente vai simplesmente aqui começar a rodar o nosso dataset inteiro. Eh, vocês podem acessar o GitHub, pelo que eu vi, vocês estão usando o Google Collab. Então vocês baixam o arquivo e vocês vão subir aqui o dataset, o um e o
09:48
Speaker A
dois. Vai dar um aviso, mas pode continuar. Aí quando o arquivo subir, você vai rodar essa célula.
10:00
Speaker A
Só só um pedido. Eh, pode dar um zoom no código normalmente. O pessoal às vezes tá vendo o celular e não consegue ver.
10:08
Speaker A
Tranquilo. Assim é melhor. Deixa eu tirar. Pode ser mais um pouquinho. Ah, agora tá bom. Obrigado.
10:14
Speaker A
Tá. Então aqui a gente vai. O que que é isso? Lembrando que PD é a nossa biblioteca pandas, então você tem que importar ela. E aí a função read CSV vai ler o código CSV do pandas e você vai
10:29
Speaker A
colocar o arquivo dataset CSV. Quando você faz isso, já rodeia essa célula. Ess a gente dá um df. Já tô adiantando um pouco, mas só para vocês verem como é que é df. Aqui já vai abrir nossa tabela
10:42
Speaker A
inteira. A gente vai ter nossos conjuntos de data, cliente, produto, categoria cidade quantidade preço vendedor. Isso aqui vai ser eh nossas 10 primeiras linhas. O head não precisa de um número dentro, mas de padrão ele é as cinco primeiras linhas.
10:59
Speaker A
E se você coloca um número, ele vai mostrar as linhas que você colocar, tá?
11:05
Speaker A
É. E junto com o df. Pode, pode passar pro próximo slide. Tem o DF.To, que ao invés de ver as cinco por padrão as cinco primeiras linhas, vai ver as últimas cinco linhas, né? Eh, por padrão, mas você também pode colocar
11:23
Speaker A
dentro do parênteses o número que você quiser. O DF.sape, ele vai mostrar o tamanho do nosso da nossa nossos dados, né? Tipo a dimensão que naquele caso pode voltar lá é 61 por 18.
11:40
Speaker A
É, se a gente for verf. T apenas mostra é as cinco últimas. E aqui o formato da tabela e o formato da tabela. E junto com isso tem o df.cums, que ele vai dar o nome de todas as colunas, o todas as vai mostrar
11:54
Speaker A
pra gente as variáveis, né? que no caso é data, cliente, produto, categoria, cidade, quantidade, preço e vendedor.
12:03
Speaker A
Vai só listar, colocar numa lista pra gente o nome das categorias, das colunas da tabela, tá? E agora a gente vai ver o def.ininofo e o def.describe. O df.ininof ele fazer um resumo geral do tipo de dado, variáveis nulas, memória,
12:21
Speaker A
eh, de cada coluna. Enquanto def. Describe, ele mostra as estatísticas descritivas de cada coluna numérica. Se a gente for rodar aqui o df.info, vai mostrar que, ó, tem o range do index, são 61 entradas de 0 até 60. A
12:39
Speaker A
data tem 61, eh, linhas não nulas, cliente não 61 não nulas, assim vai. cidade tem algumas linhas nulas, a gente não sabe quais são essas cidades.
12:51
Speaker A
Quantidade, preço e vendedor. E aqui também tem o tipo de cada coluna. Objetos são os as nossas strings. A quantidade é um índice 64, é um número inteiro. O preço é um número com vírgula, um float.
13:09
Speaker A
E é isso. E aqui fala também a memória usada. Aqui praticamente tá usando 4 k eh kb dessa tabela. e o def. Describe, a gente vai ter só duas eh eh colunas numéricas, como a gente viu. Então, ele
13:25
Speaker A
vai contar, vai fazer o count, quantas linhas tem, a média, o desvio padrão, o mínimo, o valor que corta 25% dos dados, o valor que corta 50%, 75 e máximo.
13:42
Speaker A
E aí a gente tem também aqui uma um tipo de dado por por exemplo, se a gente for ver aqui o nosso data tá como objeto, mas na verdade ele é uma data. Então a gente vai simplesmente converter esse
13:58
Speaker A
string para uma data. Assim, a gente consegue fazer operações com ela. Por exemplo, a gente vai conseguir fazer comparações entre se é antes ou depois daquela data, se a gente consegue pegar o ano que foi o mês, o dia.
14:15
Speaker A
E vendo aqui, ó, o DF data vai receber um to date time, o DF data, porém a gente coloca aqui o formato. Se vocês forem ver aqui, é ano, mês, dia. Então a gente coloca Y de year, M de month, D de é de day.
14:39
Speaker A
E aí a gente vai simplesmente printar. E agora ele transformou. E a gente pegou o day name. O que é isso? É segunda, terça quarta quinta sexta sábado domingo. Então ele vai pegar aqui e por exemplo dia e 3/01/2026.
14:57
Speaker A
era um sábado e assim sucessivamente. Se a gente ver aqui no DF info, antigamente era object, agora é date time 64 e a gente consegue fazer operações com ele também. A gente vai ter o eh como selecionar algumas colunas que você
15:20
Speaker A
quiser, simplesmente colocando uma lista dentro de um conchetes após o DF. Eh, por exemplo, se a gente quiser vir aqui e selecionar a data e uma um cliente, a gente roda, vai rodar data e cliente.
15:48
Speaker A
Simplesmente a gente coloca o ponto head no final para não ficar poluindo tanto. Fica geralmente com os três pontos.
15:54
Speaker A
Então, a gente coloca eh o ponto red para aparecer as cinco primeiras linhas. Aqui a gente consegue ver já que a gente já mostrei que a gente mostrou o tipo de dat eh a gente colocou para data.
16:10
Speaker A
Antigamente era uma string normal, então você não conseguiu fazer operações com ele. Depois a gente vai ver as operações, tudo isso vai ficar muito mais simples de entender.
16:20
Speaker A
É, agora falando, agora falando mais sobre as operações que a gente pode fazer para realmente tentar obter algum algum valor, extrair algum valor desses dados, a gente tem algumas operações.
16:32
Speaker A
Uma delas, a primeira delas que eu vou falar é o SU, que é a soma, né? que nesse caso tem, quer dizer, tem, vamos lá, tem a soma que vai somar todos os valores. É claro que como são valores,
16:45
Speaker A
eu só posso trabalhar com as colunas que são numéricas. Eu não posso trabalhar com algumas que são categóricas, tipo a cidade que vai ter o nome da cidade, não dá para fazer a soma.
16:55
Speaker A
A média, que vai retornar a média da coluna, então, né, ele vai somar todos os valores, basicamente e dividir pelo número de linhas que tem.
17:05
Speaker A
a mediana que vai retornar a mediana da coluna desejada. Então ele vai pegar o valor central, né? Vai a mediana que quer? Vai ordenar os dados em ordem crescente ou decrescente e pegar o valor que divide 50 dados, 50% dos dados para
17:20
Speaker A
baixo e para cima. Aí tem o código aí, né, que a gente fez a gente fez tudo baseado no preço. Então tem ali o DF do preço ponto s que vai pegar a soma que é 72.983.
17:38
Speaker A
A média que vai ser, né, ele vai pegar esse valor 72.000 1000 e dividir por 61 ou 58, né, que é que a gente tem alguns preços faltantes.
17:50
Speaker A
Aquele o 2.2F é mais só para, né, para troncar em duas casas decimais, né? E a mediana também ele vai pegar o valor que, como eu disse, divide 50% do% dos dados para menores e para maior.
18:05
Speaker A
Eh, além disso, a gente tem também, calma aí que tem uma dúvida aqui. Como que faz para abrir o dataset? E eu mostrei aqui. Você vai ter que vir nesse ícone aqui da pasta de arquivos e clicar aqui nesse fazer upload.
18:23
Speaker A
Fazendo esse upload. Você coloca o dataset e aí você vai importar o pandas SPD e vai colocar o PD.v CSV.
18:36
Speaker A
Assim você vai conseguir ler aqui no colab. Felipe levantou a mão. Era, era isso.
18:49
Speaker A
Foi sem querer. Foi sem querer. Desculpa. Tranquilo. Eh, pode falar, pode falar. Tá bom. A gente também tem mais algumas operações para eh para as colunas quantitativas que tem o mini e o max, que vai tornar o mínimo e o máximo de
19:07
Speaker A
cada coluna. Então, a gente vai rodar aqui o mínimo e o máximo. O valor, o menor valor que a gente que teve de venda foi R$ 110 e o maior valor foi R$ 4600.
19:20
Speaker A
Aí, eh, depois você só avisa se conseguiu ler o dataset que a gente não, a gente volta aí para para abrir de novo, tá? Então aqui a gente vai ver uma diferença.
19:35
Speaker A
Eh, se você não colocar duas eh dois colchetes, você vai retornar uma series, vai retornar uma series do eh que não que vai ser diferente do data frame.
19:46
Speaker A
Você usando def dois colchetes, produto, produto, quantidade, você vai conseguir acessar mais de uma coluna de uma vez ou apenas uma, mas vai ser continuar sendo o data frame.
19:57
Speaker A
É, ó, aqui a gente vai ver o que que muda. Esse aqui é uma series e esse aqui é um data frame. aqui no print não vai mudar muita coisa, porém há algumas eh a gente consegue fazer o type dela,
20:16
Speaker A
que há algumas operações que a gente só vai conseguir fazer eh com o datafame que nem esse aqui o type é series, já esse aqui o type é data frame.
20:35
Speaker A
Tá? Agora passando para uma funcionalidade bem interessante para quando a gente, por exemplo, não quer a base de dados inteira, a gente não quer toda a nossa planilha, a gente só quer algumas linhas específicas ou algumas coisas específicas. Então o que que a gente
20:53
Speaker A
pode fazer? A gente pode usar, por exemplo, esse DF colchetes 2.5, que vai pegar as cinco primeiras linhas. Então, como a gente começa do zero, vai pegar a zero, 1, a 2, a 3 e a quarta linha.
21:07
Speaker A
Eh, também tem como usar o def. Lock se a gente quer linhas e colunas específicas. Então, nesse exemplo aí, de zero até cinco e de zero até quatro, ele vai pegar as linhas de zero até quatro e as colunas de zero até três. Mostra lá
21:22
Speaker A
no no colab pra gente. Vamos lá. Aqui então aí, por exemplo, né, no oock, ele tá pegando os quatro os cinco primeiros clientes e as quatro primeiras variáveis, quatro primeiras colunas, né, que é a data, o cliente, o produto e a
21:39
Speaker A
categoria. ou também, né, tem um outro jeito que é o def.lck lock do jeito que tá ali, de 0 pon do do zero até o 4 das categorias data e produto. Ou seja, ele vai pegar as linhas de zero até 4
22:00
Speaker A
e vai pegar as categorias data e produto. Quando a gente quer, por exemplo, só analisar algumas, né, algumas variáveis e não todas, a gente pode acabar filtrando para as que a gente quer.
22:11
Speaker A
Isso aqui é muito interessante também porque que nem aqui, se você for ver, há números no nosso data frame, mas você pode ser que esse aqui é o nosso índex que chama, que é o nosso identificador de cada linha. Como padrão, ele cria
22:26
Speaker A
números de zero até o tamanho da linha, o tamanho do do data frame. Porém, é possível você simplesmente fazer mudar que nem se quisesse fazer isso aqui por dia de v por dias, por datas.
22:40
Speaker A
Se não houver datas repetidas, você poderia usar o seu, a sua data como um índex. O problema disso é que não teria como haver dadas repetidas, que nosso caso a E o lock enquanto isso faz simplesmente por posição. Então assim, ele vai pegar
22:58
Speaker A
da zero até a quinta, da zero até a quarta, não importando o nosso índex, tá?
23:07
Speaker A
Aí passando um pouco para para os filtros, que é outra maneira da gente acabar filtrando apenas a algumas linhas e algumas colunas que a gente deseja, tem como a gente colocar condições dentro do DF colchetes, né? a gente pode
23:20
Speaker A
colocar condições que a gente quer que atende. Então, abre lá o o no código pra gente. A gente pode, por exemplo, colocar um criar um filtro, uma condição, quer dizer, da data ser apenas anteriores à aquela ali, 2026 2/ do2, né?
23:41
Speaker A
E tipo com a condição e tem como a gente usar aquele operador, aquele ezinho ali para também criar mais de uma condição ao mesmo tempo, que é o que tava escrito lá, um um e, né? Seria um um e
23:52
Speaker A
condicionalmente acontecer as duas coisas ao mesmo tempo. Eh, vai ver que as datas vão estar nesse intervalo mesmo.
23:59
Speaker A
Sim, sim. E aí é só para dizer que, tipo, não necessariamente precisa ser uma condição só. a gente pode colocar algumas condições do que a gente quer, dependendo do que a gente quiser observar ou quiser. E aqui uma parte muito
24:12
Speaker A
importante para mostrar para vocês, é que no Python em si, ele aceitaria, por exemplo, a gente fazer eh uma condição, por exemplo, DF produto, essa aqui tá com IA, igual a monitor, ele aceitaria um or, o DF produto
24:31
Speaker A
eh for, por exemplo, eh, headset. Se vocês for ver, forem ver, ah, um colchete aqui e uma condição aqui, um or e isso. Só que o pandas não aceita o não é igual o Python que tem o end e o eles
24:54
Speaker A
você tem que usar a essa barra reta aqui que vai Não é essa barra é ã caso era para ser essa barra não está indo se a gente for ver and string não pode fazer aqui comparação com eh com nossos nossos
25:24
Speaker A
strings. Por isso que a gente vai ver que há outro jeito de fazer isso. Eu fui tentar passar na frente para dar um exemplo.
25:31
Speaker A
Eh, a gente tem a nossa operação, na verdade isso is in, na verdade, é que vai contar se o produto tá, por exemplo, dentro da lista monitor ou notebook. Aqui funciona essa comparação.
25:47
Speaker A
Você não pode usar o or, não pode usar o end. Se a gente ver aqui mudar para end, não é para rodar.
25:55
Speaker A
Eh, ficou aqui para baixo. Tem que ser o ezinho aqui, eh, que o próprio pandas aceita. E o inin você poderia colocar mais coisas.
26:08
Speaker A
Notebook. Se eu quiser mudar para notebook, para headset dá para mudar. Tranquilo. E vai mostrar apenas as vendas que tem, vai mostrar todas as linhas que tem os produtos como headset ou monitor, tá? E também tem o Bitwin. O Bitwin são
26:26
Speaker A
para valores numéricos que ao invés de ver se são apenas iguais, vai tentar filtrar num intervalo específico. Então a gente vai tentar, por exemplo, pegar as vendas que tem que estão entre 1000 e R$ 2000. Ou seja, você vai pegar aqui a
26:42
Speaker A
venda do cliente 16, do cliente 11, 15, todas essas aqui, eh, você consegue acessar usando um colchete e uma condição, tá?
27:02
Speaker A
Aí agora a gente pode com o pandas, o pandas a gente consegue muito facilmente criar novas colunas, criar novas categorias na nossa tabela, né? Ali tem o o exemplo do faturamento, que o DF do faturamento, que a gente vai criar uma
27:18
Speaker A
categoria nova, uma variável nova, né? vai ser o DF quantidade vezes o DF preço. Então ele vai pegar valor por valor na respectiva linha e multiplicar a quantidade daquela linha pelo preço daquela linha e vai adicionar ela na
27:34
Speaker A
coluna nova faturamento. Eh, como tá escrito ali, multiplicando duas colunas existentes, elemento a elemento vetorizado. Isso é muito importante.
27:43
Speaker A
Se a gente for ver aqui, eh, só para mostrar também para vocês que você não precisa definir alguma coisa antes como vazia. Por exemplo, DF ano vazio, eh, você simplesmente pode já definir df ano vai ser a data.dt.
28:02
Speaker A
DT é onde você conseguiria acessar as propriedades da data. year. O df mês é a data dt month, o dia day e o dia da semana day name. E aqui a gente simplesmente filtrou, eh, pegou as colunas que a gente quer pra gente
28:20
Speaker A
mostrar para vocês que a gente conseguiu criar o dia, o mês, o ano e o dia da semana. Então aqui, por exemplo, daria para fazer tranquilamente uma um estudo de dias da semana, de vendas por dias da semana. Então assim, a gente
28:35
Speaker A
conseguiria saber, por exemplo, se aos fs de semana a gente vende mais ou menos do que o deos comuns.
28:40
Speaker A
Sim, sim. Basicamente criar eh criar colunas novas no Pandas é igual criar tipo chaves novas num dicionário do próprio Python, por exemplo. Você pode, não precisa criar ele antecipadamente e depois adicionar valores a ele. Você pode já criar
28:55
Speaker A
adicionando ao mesmo tempo, que é o que o que tá acontecendo ali no na primeira função ali de azul.
29:03
Speaker A
outro outro ponto também é dado que a gente criou a nossa nova coluna faturamento, a gente pode criar esse, como tem o outro exemplo ali, do DF do ticket alto, que é igual DF faturamento maior ou igual a 3.000. Ou seja, ele vai
29:19
Speaker A
criar uma coluna com trus tres ou falsces a partir dessa condição que a gente impôs do faturamento ser maior que 3.000.
29:28
Speaker A
Isso serve muito pra gente quando, tipo, ao invés de ter só os valores, a gente tem que analisar valor por valor, a gente pode analisar meio que categorizando eles. Então a gente impõe que acima do, se o faturamento for maior
29:42
Speaker A
do que 3.000, ele é true. Ou se for menor, então ele é falso. Isso serve, a gente vai ver outros métodos, outro método para fazer isso também de acabar categorizando essas variáveis numéricas em em categorias assim pra gente poder
29:59
Speaker A
analisar melhor. Uhum. Aqui só pra gente mostrar para vocês que a gente criou o faturamento, que é a quantidade de vezes o preço e o ticket alto também. Então, se a gente mostrar aqui para vocês, aqui foi criada uma nova coluna,
30:13
Speaker A
faturamento, que vai bater certinho com o preço vez a quantidade. E o tickete alto só vai ser true quando for acima de R$ 3.000. Então aqui é false. False, aqui é true. Então aqui a gente poderia fazer alguns filtros também para saber
30:28
Speaker A
se o as vendas que mais venderam, tá? Aqui é importante também a gente falar sobre o COP. O problema, um problema do Python é que por ele ser eh, por ele apontar na memória, quando você cria um igual, ele aponta, por exemplo, para na
30:45
Speaker A
memória pro mesmo objeto. Então você vai vir aqui, eu vou criar um DF de janeiro, que é simplesmente o DF, onde o mês for igual a um. Só que é importante você eh colocar um copy, porque se você quiser
30:59
Speaker A
fazer alguma alteração nesse nesse janeiro, mas não quiser fazer uma alteração no DF, por garantia você faz isso para que os dados não se cruzem na memória do seu computador, do Google Collab, que assim a gente consegue filtrar certinho. E aí que a gente
31:15
Speaker A
consegue ó janeiro janeiro janeiro janeiro. A última linha também é janeiro, tá fora de ordem.
31:21
Speaker A
Eh, e aí você consegue ver que ela continua igual. A única, o único problema é que o tamanho dela, eh, se a gente pegar, é 9 por 14. Agora, não, simplesmente com 60 linhas. [roncando] 60.
31:37
Speaker A
Sim, isso é muito bom porque, por exemplo, você está lá analisando as seus dados e tudo mais e aí você quer fazer algum fazer alguns testes com algumas categorias específicas, com alguma coisa específica. Aí é, aí é muito bom você
31:50
Speaker A
que realmente criar esse COP para acabar não alterando o seu DF original, digamos assim né?
31:57
Speaker A
Uhum. Exatamente. Ah, aqui a gente vai falar agora um pouco sobre dados faltantes, que como vocês viram no describe, no describe, no infus que a gente viu lá em cima, eh, existem alguns dados faltantes nessa base de dados que a gente trouxe e a
32:15
Speaker A
gente precisa aprender o que que a gente faz com eles, eh, e como fazer alguma coisa com eles, né, com esses dados faltantes. Então, existem algumas possibilidades que a gente pode fazer quando a gente tá trabalhando com dados.
32:27
Speaker A
Eh, inicialmente a gente consegue verificar se existem dados faltantes com esse IS na, né, que verifica se o dataframe possui algum valor ausente.
32:37
Speaker A
Então, ele vai verificar quais e onde quais categorias e tudo mais ele tá ausente. Consegue colocar lá pra gente?
32:47
Speaker A
Claro. Aqui a gente vai simplesmente filtrar o cidade, isso. Então, a gente sabe que a gente tem três cidades com esse NA. Se a gente colocasse também alguma outra categoria e que também tivesse dados faltantes, ia apresentar apenas as linhas que tem essa
33:05
Speaker A
categoria faltante. Se a gente pegar, por exemplo, data e ZNA, não vai retornar nada porque a gente não tem nenhum dado eh de data faltante.
33:15
Speaker A
Isso aí, basicamente, o que que a gente pode saber? Dado que a gente, beleza, agora a gente sabe que tem alguns dados faltantes na nossa base de dados. a gente pode usar esse fio na que vai entre parênteses o valor que a gente
33:28
Speaker A
quer que vai substituir os valores ausentes por algum valor fixo. Então, por exemplo, se se ali é esse exemplo, se na cidade tem acho que duas ou três linhas que tem a cidade faltante, né, três, então a gente
33:47
Speaker A
pode simplesmente criar uma categoria, né, uma string sem cidade para substituir o na. Então a gente coloca ali DF cidade, vai ser o DF cidade. Esse fio na vai pegar as linhas que tem que não tem cidade e vai adicionar a
34:04
Speaker A
categoria a string sem cidade. Aí se a gente filtrar aqui, a gente vai ver que agora na aba cidade tá sem cidade.
34:14
Speaker A
E isso você pode falar, pode falar. Isso aqui é bom caso você queira simplesmente eh fazer um plot, fazer um gráfico por cidade e aí os NAS não apareceriam em nada. Então isso aqui você poderia eh mostrar os 100 cidades.
34:29
Speaker A
E aí quando a gente dá o df.ininfo, agora a gente vai ter que de cidades vai ter 61 números não 61 não nulos, que anteriormente tinha 58, né? E agora que a gente mudou e colocou nos nos que eram
34:43
Speaker A
nulos sem cidade, voltou para 61. voltou. Não, agora se tornou 61. Exatamente. E pode falar depois.
34:54
Speaker A
Aí além disso, ao invés da gente substituir os valores ausentes por um valor fixo, a gente pode também usar o drop na que vai simplesmente remover a linha que tiver valores ausentes. Então, ao invés de substituir por 100 cidades,
35:10
Speaker A
a gente poderia, por exemplo, remover essas três linhas, eh, essas três linhas que não tinham cidades, eram nulas. cidades.
35:19
Speaker A
Uhum. Daí se a gente for ver, por exemplo, aqui faturamento e preço tem 59 linhas, ou seja, a duas não nulas. Isso se dá porque o faturamento depende do preço. Então, se você não tem o preço, eu vou dropar os NAS e aqui os infos.
35:33
Speaker A
Agora a gente vai ver que todas as linhas têm 59 porque ele dropa a linha inteira, ele exclui a linha inteira do seu data frame.
35:43
Speaker A
E uma boa, uma boa coisa que você pode fazer para, no caso, valores de preço, faturamento, você poderia, dependendo, filtrar pelo produto que a pessoa comprou e fazer uma média, pegar a mediana. Aí cada cada caso vai depender
36:00
Speaker A
do seu dado, do seu objetivo. Nunca tem um valor certo para se eh para se completar no fio na, por exemplo, mas você poderia completar com a média, com a mediana ou ir atrás.
36:15
Speaker A
E aqui a gente vai conseguir eh ordenar o nosso dataframe def. Values, ele ordena o data frame pelo preço. Eu decidi ordenar pelo preço. Ascend vem como padrão true. O que o ascend ele é é se é crescente, então de padrão vem
36:38
Speaker A
crescente, vem do menor pro maior. Eu quero o contrário, eu quero que seja do menor pro maior, do do maior pro menor.
36:45
Speaker A
Então eu coloco a senha de igual a false. Eu coloquei aqui para red 10.
36:50
Speaker A
Assim, eu vou mostrar as 10 primeiras linhas e mostrar que tá tudo ordenado pelo preço. Você vê que o o index aqui tá fora de ordem para mostrar que realmente o dataframe mudou.
37:04
Speaker A
Eh, temos também o def value counts, que conta quantas vezes cada valor único aparece em uma coluna ou ser. Eh, por exemplo, aqui a gente vai DF cidade pvue Belo Horizonte apareceu 15 vezes, teve 15 vendas para Belo Horizonte, 14 vezes
37:29
Speaker A
vendas para Rio de Janeiro, 14 vendas para Curitiba, 13 vendas para São Paulo e três vendas sem cidade, que é aquelas que a gente acabou eh imputando dados sem cidade. E por fim, a gente tem unique também, que vai
37:44
Speaker A
retornar um array com os valores distintos de uma coluna ou mantendo a ordem que ele aparece. Por exemplo, se a gente ver aqui DF cidade ponique, vai nos retornar um array Rio de Janeiro, Curitiba, Belo Horizonte, sem cidade, São Paulo, só pra gente
38:02
Speaker A
conseguir ver, caso você queira iterar sobre cidades, caso você queira só uma lista mesmo, sem um data frame, sem um uma sirve, quer dizer.
38:16
Speaker A
E agora nós temos o group buy, que ele vai, caso você queira fazer uma análise, como eu falei já, ah, eu quero saber por produto, quero saber por cidade, quanto que eu vendi em cada cidade, quanto que cada produto tá realmente e de
38:29
Speaker A
importando no meu faturamento. Então você vai conseguir fazer o group buy, você vai agrupar linhas por valores de uma ou mais coluna. Você pode agrupar eh df.groupby group by cidade preço vai agrupar por cidades e e seleciona a
38:44
Speaker A
coluna preço. Então, ixe, tá fora de ordem aqui. Ah, se a gente colocar cidade preço, eh, eu dei errado.
39:00
Speaker A
Def.group group by eh cidade ahã é um genérico, só que a gente pode fazer o ponto então ele vai somar o preço por cidade.
39:19
Speaker A
Então para Belo Horizonte a gente vendeu R$ 13.000, Curitiba R.000, Rio de Janeiro 14.000 e assim vai.
39:29
Speaker A
Eh, então para para valores numéricos é sempre importante fazer a soma, média para que não você consiga realmente ver os dados. senão não tem muito como você ver eh agrupamento sem você fazer alguma média, alguma soma.
39:46
Speaker A
Ã, você consegue group by cidade, drop na false, você vai agrupar para cidade mantendo os valores nulos com grupo.
39:55
Speaker A
Você consegue agregar de uma vez nomeando cada coluna restante. Então, se a gente colocar DF.
40:07
Speaker A
Ahã. A gente coloca nome. É, não, nome não. Aí não tá aí. Você tem que colocar aqui o preço min, max e min.
40:25
Speaker A
Eh, você vai colocar a coluna que você quer e a função. Então, a gente vai pegar o preço, fazer a o mínimo, o máximo e a média.
40:34
Speaker A
E o Group B você consegue também eh agrupar por mais de uma categoria para caso você queira ver realmente cidade por produto e assim você conseguiria, por exemplo, se a gente ver aqui e criar um código cidade e produto.
41:00
Speaker A
Então aí sim você consegue ver na cidade de Belo Horizonte nós temos o produto headset com R$ 11100, monitor 7.000 e assim vai. Então aqui a gente consegue ver separando por cidade, a gente consegue ver por produto.
41:16
Speaker A
Lembrando que se a gente inverter essa ordem, a gente colocar produto aqui e a cidade aqui, ele vai escolher o grupo maior, headset, o produto, headset, monitor, mouse e separando aqui por cidade pra gente conseguir ver o desempenho de cada
41:34
Speaker A
produto e em cada cidade, não o contrário, não cada cidade com cada produto. pouco confuso.
41:41
Speaker A
Agora falando um pouco sobre algumas operações a mais que a gente pode fazer, como o nosso datafame em cada coluna é uma series, é um objeto vetorizado, né?
41:53
Speaker A
A gente pode, por exemplo, se eu quiser dar fazer o np.l log do df preço, que ele vai aplicar o logaritmo em cada valor da coluna, já que é um um objeto vetorizado, criando uma coluna nova também.
42:07
Speaker A
Isso você define aqui n e aí a gente vai printar o DF depois aqui pra gente ver. Mas Uhum. E o NP.
42:16
Speaker A
que vai criar uma coluna com valores condicionais com a minha condição alto ou baixo. Então, por exemplo, a gente pode eh poderia, por exemplo, pegar as o vendedores e ver se os vendedores conseguiram vender mais de determinado produto, eles são vendedores, a gente
42:36
Speaker A
poderia dizer, vendedores bons. Se eles conseguiram, se eles venderam menos do que a minha condição, que é o meu número de produtos, eles seriam vendedores ruins ou algo do tipo.
42:46
Speaker A
Uhum. Aí é que a gente queria o exemplo do faturamento, que vai criar o a categoria do faturamento alto baixo.
42:55
Speaker A
Então, se vendeu mais, se o faturamento foi maior de que 4.000, ele cria eh alto, se for menor, baixo. É basicamente igual a do que a gente já havia criado anteriormente do ticket alto, só que do ticket alto eh retornava apenas um valor
43:10
Speaker A
buleano, que era true ou false. E aí, se a gente quer realmente criar uma categoria com nome específico, a gente pode usar esse NP. Com a condição e o nome das categorias que a gente quer.
43:24
Speaker A
E aqui, só para mostrar o log do preço, que a gente consegue pegar o log do preço, não tem muita funcionalidade nesse dataset. E não precisa simplesmente o log, pode ser exponencial, pode ser qualquer coisa, qualquer eh função vetorizada, tá? Mas e se você não
43:43
Speaker A
tem uma função vetorizada porque você precisa? Então você vai criar, vai usar o apply, que ele é uma, aplica uma função Python própria a cada elemento de uma series, só que é não é vetorizada, ou seja, ele vai meio que fazer um for
43:57
Speaker A
por tres e aí vai fazer um for, vai pegar aquela aquele elemento, retornar uma coisa e aí com um dataset muito grande nunca é bom você usar o apply.
44:08
Speaker A
você sempre tem que tentar eh contornar para operações vetorizadas, que aí ficaria muito mais rápido.
44:16
Speaker A
Mas em último caso, você vai ter que usar o apply. Por exemplo, aqui a gente tem o DF, quantidade ponto apply, classificar quantidade. Eh, passa cada valor da coluna pela função e retorna a coluna nova com resultado. Vamos lá pra
44:29
Speaker A
gente ver. A gente criou aqui uma função classificar quantidade que vai receber a quantidade. E a se a quantidade for um é uma venda em varejo. Se for menor que quatro, ou seja, 2, três ou quatro, retorna uma venda, uma quantidade média,
44:46
Speaker A
se não é atacado. E a gente consegue só lembrando dos elifes e dos elces, que eh o um não tá enquadrado nesse caso aqui, porque o um já está no if de cima, né? Então eu criei a função, eu vou
45:01
Speaker A
criar o DF tipo venda, que é o DF quantidade ponto apply e classificar quantidade.
45:07
Speaker A
Rodando isso, ele vai vir aqui, por exemplo, atacado, varejo, média. Se você for ver, vai bater certinho com quantidades. Aqui a quantidade de cinco é uma venda em atacado, quantidade de um é varejo, três é média. Então isso aqui também eh é
45:23
Speaker A
algo que vai rodar, só que demora, dependendo do seu sistema, dependendo do que você precisa. não é o ideal. Então, é sempre você tentar fazer operações vetorizadas para que você não fique muito tempo eh rodando um código que às vezes poder
45:40
Speaker A
ser muito mais rápido. Eh, só para finalizar o que Mateus disse e juntar um pouco de tudo, essas funções, esses métodos que a gente tá aprendendo para acabar classificando e categorizando variáveis numéricas é realmente muito importante também na
45:57
Speaker A
hora que a gente quer, por exemplo, se a gente quer fazer um gráfico por categoria de varejo, mercado, não lembro outro, mas agora, mas enfim, média, média. Ah, ou então com o o que o exemplo que eu havia dito anteriormente
46:12
Speaker A
de um vendedor bom, vendedor ruim. É claro que a gente poderia também fazer com o o faturamento também que foi feito, faturamento alto ou baixo, que é realmente um pouco mais sobre ser melhor para visualizar. É um pouco sobre isso.
46:30
Speaker A
Pode agora você entender o que você precisa na para analisar seus dados e você conseguir separar bonitinho, você conseguir fazer uns gráficos, porque o importante, na verdade, eh, por exemplo, quando você for trabalhar para uma empresa, o importante não vai ser como você fez
46:47
Speaker A
aquilo. Eh, geralmente você vai explicar aquilo para uma pessoa que nem tá entendendo o que tá se passando por trás. Você só tem que explicar o resultado. Então, você tem que explicar o resultado da melhor maneira possível.
46:56
Speaker A
você tem que explicar a sua decisão, eh, o que você concluiu do melhor método possível para que você consiga obter sucesso no seu nas suas ideias.
47:11
Speaker A
Sim, sim. Agora pode passar. Mudando um pouquinho, a gente tem como renomear e remover, mexer com essas coisas no nosso dataframe. Então, por exemplo, a gente pode renomear as colunas que a gente deseja se eh ele tem exempele formato
47:28
Speaker A
ali, entre parênteses com alunos e aí tem você coloca o número, o nome antigo da categoria e o nome novo que você quer atribuir aquela categoria. Então, nesse exemplo aí que a gente tinha definido e faturamento underline cat, a gente mudou
47:42
Speaker A
paraa categoria de faturamento, o que, né, acaba sendo melhor mesmo, porque cat às vezes fica um pouco subjetivo, não dá para entender o que é, então a gente coloca nomes mais simples. E aí ele basicamente vai alterar na nosso no
47:55
Speaker A
nosso DF o nome daquela coluna. Eh, a gente tem também o dev.dropconss, o drop columns que vai remover colunas.
48:07
Speaker A
Então, basicamente, aquela coluna que a gente tinha adicionado, a gente tinha criada só para mostrar eh o do log do preço, a gente pode simplesmente, agora que a gente mostrou para vocês, a gente pode só tirar elas porque
48:20
Speaker A
não seria interessante, talvez, né, paraa nossa pra análise que a gente tá fazendo ou algo do tipo. Então, é bem simples assim, só eliminar uma coluna ou mudar o nome dessa coluna.
48:33
Speaker A
Eh, e também tem o df.drop underline duplicates, que vai basicamente remover linhas que forem duplicadas, linhas que tiverem todas as categorias iguais né?
48:48
Speaker A
Isso. Por exemplo, aqui a gente vai ver que há 59 linhas não nulas em todos.
48:54
Speaker A
Eh, a gente vai remover as duplicadas e quando a gente vê tem 58, ou seja, no nosso no nosso data frame havia uma linha duplicada e ele só remove uma delas.
49:07
Speaker A
E aqui também o importante é que a gente não comentou, porém é sempre muito importante falar que o nome das nossas variáveis, o nome das nossas colunas, por padrão, por convenção, não é por padrão, convenção dos eh programadores
49:21
Speaker A
em Python é sempre tudo minúsculo com underline, caso você precise de um espaço para você conseguir acessar melhor, para ter melhor visualização. E por padrão mesmo, vocês sabem que às vezes que nem em Python variável já é letra a primeira letra minúscula, dessas
49:38
Speaker A
coisas. Então aqui na coluna vai manter a mesma coisa. Sim. E na hora de acessar também, tipo, no meio do código, se você precisa acessar aquela coluna, fica um pouco mais fácil também, tá? Agora, eh, vamos lá explicar para vocês sobre string.
49:59
Speaker A
Strings nas colunas não é simplesmente você a tentar usar string direto, coluna direto como strings. Você tem que usar o df. STR, que ele vai simplesmente dar operações vetorizadas sobre strings para aquela coluna. Então, se a gente quiser,
50:17
Speaker A
por um exemplo, fazer o DF cliente, todas as letras maiúsculas, primeiro você tem que fazer o DFC cliente. STR para para realmente você ter acesso às operações vetorizadas de colunas ponto upper. Assim, você não vai ter que fazer
50:31
Speaker A
rodar um for, você não vai ter que criar um apply, mas ainda assim vai ser muito rápido porque é uma operação vetorizada e e todos os clientes aqui, vocês vão ver, vai tá tudo com letra maiúscula agora. cliente.
50:47
Speaker A
E aqui a gente pode ver também caso contenha eh a string contenha 01, por exemplo, que você vai conseguir filtrar linhas cujo texto contenha alguma parte aquele trecho que você tá eh definindo. Ele ignora maiúscula e minúscula e valores
51:05
Speaker A
nulos. igual a falso, ele ele no caso eh vai excluir, não vai ignorar eh maiúsculo ou minúsculo. É que no caso aqui o nosso é um número 01 e o na é falso. Então primeiro eu criei uma condição aqui para vocês verem, para
51:23
Speaker A
vocês entenderem. Nossa condição é onde o cliente contém 01 e aí o nosso DF clientes 01 é o DF da condição dele.
51:31
Speaker A
Aqui talvez seja mais interessante para vocês verem também como funciona a condição aqui. Eh, vai rodar uma Ah, tá, rolou aqui o negócio. No caso, só há um uma venda do cliente 01 que contém o 01, que é o
51:47
Speaker A
cliente 01, né? Linha 55. Eh, e importante que isso aqui é caso você tenha uma uma um dataset que realmente contenha muito texto em algumas algumas colunas, você quer dar uma limpada, você quer eh trocar, você tem que usar o
52:07
Speaker A
ponto str porque senão você não vai conseguir acessar eh a categoria dela de as operações vetorizadas do do num pai para strings. E aqui também, só lembrando, eh, que a gente tem uma lista, por exemplo, a gente vai ter, eu vou criar
52:29
Speaker A
um exemplo para vocês verem melhor. Um, eh oi true, certo? E a gente vai ter o nosso array, que vai ser um nparray lista.
52:45
Speaker A
Se a gente for printar o nosso array, todos viraram strings. Por quê? Porque como já foi falado no começo da aula, o Maurício falou, num array todos os elementos tm que ser da mesma categoria, tem que ser e é do
53:01
Speaker A
mesmo tipo. E aí você não conseguiria transformar um oi para um número ou para um buleano. Então a string prevalece e acaba que tudo vira strings nesse caso. Então sempre bom tomar tomar cuidado. você vai colocar um aspas, você vai colocar um true ou
53:19
Speaker A
false, sempre colocar true sem com letra maiúscula, eh, sem aspas, tudo isso pra gente conseguir operar strings ou o seu tipo de dado, tá? Agora aqui também vem um grande segredo. Só deixa eu ver que mandaram aqui.
53:38
Speaker A
Eh, é possível mandar no WhatsApp o link? Então, a gente mandou já o nosso GitHub aqui, tava fixado, tá no começo do do chat, se quiser a gente envia de novo, mas é só avisar, tá? Então, o concate o que faz? Ele vai
53:58
Speaker A
empilhar tabelas uma embaixo da outra. Ou seja, as tabelas teoricamente, mas não sempre, mas teoricamente, tem que ter as mesmas variáveis.
54:07
Speaker A
vocês verem, para vocês verem isso, a gente vai fazer eh DF concat aqui tá fora de ordem o DF Concat. O primeiro você vai ter que ler o DF2, dataset 2.
54:23
Speaker A
Lendo ele, você vai fazer o concat dos dois. Eu criei um DF Concat, só pra gente ver a diferença, que vai ser um PD.CONCAT, o DF e o DF2. Ignore index igual a true. É para quê? para resetar
54:36
Speaker A
os ind os índex para voltar realmente a ser de zero até o tamanho 82 aqui, né? 0 até 81 são 82 negócios.
54:47
Speaker A
Então, se vocês forem ver, esses dados aqui não existiam no DF antigo, ou seja, agora tem mais linhas. E essas colunas que a gente criou antigamente no nosso DF original, aqui não existe. Não sei se vocês conseguem ver, mas eu vou colocar
55:03
Speaker A
um DF concat para mostrar tudo. Realmente, a parte de cima do DS data frame é a parte original. Então sim, existe ano, mês, dias, dias, semana, faturamento. E aqui embaixo não existe isso, tá tudo na. Ou seja, é sempre bom na hora de
55:18
Speaker A
fazer o concate vocês verificarem se as duas as duas tabelas têm a mesma tipo de dados. Senão vocês rodam tudo de novo. As eh o fatur eh a criação da da coluna de faturamento, dia da semana, que também
55:38
Speaker A
vai dar certo. E agora o merch. com merge vem de uma ideia do SQL, porque é o seguinte, você vai ter eh uma tabela, duas tabelas, eh só que uma tem base na outra, uma tem alguma a ver com a outra, por exemplo, uma
55:59
Speaker A
coluna. O que a gente vai fazer é o seguinte, vai dar um merge DF e da tabela vendedores, eh, com o on vendedor, porque é o seguinte, deixa eu mostrar para vocês aqui o vendedores, dados vendedores, a gente criou aqui que a comissão para
56:15
Speaker A
cada vendedor é diferente. Ou seja, eh, a Ana, se a gente colocar aqui, a Ana tem 10% de comissão, o Bruno 8o, a Carla 8, o Diego 12 e o Eduardo 5.
56:29
Speaker A
É, só que eu quero tentar, por exemplo, vim e vim no nosso dataframe antigo e já adicionar essas comissões venda a venda para eu ver realmente quanto que eu vou ter que pagar no final do mês pro meu
56:43
Speaker A
vendedor. Você consegue usar o merge. Você vai eh fazer o merge do seu dataframe original com o seu dataframe dos vendedores.
56:54
Speaker A
O on é onde a coluna que vai ser igual uma da outra. Por exemplo, aqui a gente tem a coluna de vendedor e aqui a gente tem coluna de vendedor também. Então a coluna é a mesma. E how? O how aqui
57:07
Speaker A
nesse caso é o left que ele vai manter todas as linhas do data frame da esquerda, o dataframe original. Então por isso que é left e vai buscar a correspondência na da nos da direita.
57:21
Speaker A
Então, se a gente vi aqui e rodar o def merge, ó, a gente tinha o vendedor Diego, agora a gente criou uma uma coluna de comissão, não criou, juntou as colunas, a comissão percentual dele é 12%, do Diego é 12 também, a Ana
57:38
Speaker A
10. Eh, se a gente pegar o tail aqui, a gente vai ver que, por exemplo, Carla é oito, Bruno é oito.
57:51
Speaker A
Então, a gente vai simplesmente cruzar as colunas para que a gente consiga ter acesso uma na outra, não tem que fazer uma função, eh, buscando apenas juntar as colunas. Essa parte é um pouquinho mais chata, vem um pouquinho mais da
58:05
Speaker A
parte do SQL, do merge, do concat da SQL. dessa lógica da SQL. Tem vários tipos de R também, caso vocês queirem que a gente aprofunde aqui. Se alguém ficou com alguma dúvida também pode mandar no chat, que eu tô ali aqui lendo o chat ou
58:20
Speaker A
alguém me avisa. Eh, mas é isso. Ele vai no left, ele vai pegar os seus dados à esquerda e vai tentar achar correspondências no na col no seu data frame da direita.
58:35
Speaker A
Agora indo um pouco mais pra exibição dos dados. no Mat Plot Lib, que sinceramente é a parte que eu mais acho interessante você ficar visualizando os dados e mexendo em como você visualiza os dados. Por exemplo, o PLT.figure
58:52
Speaker A
eh abre parênteses fig size igual a 84, que define o tamanho da nossa figura do define o tamanho do da da figura que vai gerar os nossos dados, vai gerar um gráfico para os nossos dados. E isso é
59:03
Speaker A
muito interessante porque quando a gente tá mexendo com para pilotar gráfico e tudo mais, tem várias configurações de exibição.
59:10
Speaker A
Então, por exemplo, naquele fig size 8 4, tem como você ficar mexendo nesses valores, dependendo do do tamanho que você quer e tudo mais. E você pode ficar testando até achar qual que é o tamanho que você acha melhor ou algo do tipo.
59:24
Speaker A
Eh, a gente vai ter também o plt. Que vai fazer um histograma. No exemplo aí a gente fez do preço, então vai, a gente vai pegar o histograma dos dos preços do nosso dataset e esse bs igual a 15 vai ser o número de o número de
59:41
Speaker A
retângulos que eu vou ter no nosso histograma. E aí novamente, né, se você quiser ir mexendo nisso, mexendo nesse número do BS para você ver qual que você acha que fica mais interessante, se você prefere com poucos poucos retângulos,
59:55
Speaker A
mais retângulos e tudo mais no nosso histograma. Tá aí pode falar. Eh, aqui também a gente vai ter algumas funcionalidades. Por exemplo, dá um nome pro nosso eixo X, é um PLT.X label, dá o nome pro nosso eixo Y. PLT.Y label e
60:16
Speaker A
PLT.title title dá o título do gráfico. E aqui a gente tem o plt. Show, que no nosso caso do Googleab, do Júpiter Notebook, não, né, não é tão necessário.
60:26
Speaker A
Tipo assim, se você se esquecer dele, você vai apar normalmente. Só que vai ficar um texto da última atribuição que você deu. Então é sempre bom você colocar prt. Show.
60:39
Speaker A
E aqui a gente consegue ver que foi criado o histograma de preços, como o Maurício falou. Bins igual a 15, no caso, não é necessariamente eh o número de de retângulos, mas é o número de retângulos que caberia aqui, ou seja,
60:54
Speaker A
caberia um retângulo aqui no dois retângulos aqui entre o 1000 e o resto aqui entre o 2000 e o 4000. Aqui é 1500 é 3500.
61:05
Speaker A
É só, é importante dizer, né, que quando a gente vai pilotar os gráficos, é como tá escrito no código ali, a gente vai, tipo, linha por linha, fazendo o que a gente quer. Então, primeiro a gente define ali o tamanho da nossa figura. Aí
61:18
Speaker A
depois, e numa outra linha, o pltitle e eh escreve o título que a gente quer que tenha o PLT.XL.
61:26
Speaker A
Aí a gente escreve o que que o que que a gente quer que seja o nosso o nome do nosso do nosso eixo X e por assim vai. E por fim, né, o plt. Show, caso você queira, para limpo,
61:41
Speaker A
para mostrar o gráfico em si. E aqui eu tava mostrando para vocês, caso vocês queiram fazer tipo um quadrado 4x4, vai fazer. Então aqui é brincar bastante com o seu gráfico, ver como você vai vai preferir apresentar ele,
61:58
Speaker A
tipo ir mudando o também. você vai conseguir ter bastante noção de como os seus preços estão distribuídos em relação às vendas.
62:09
Speaker A
Sim, para também procurar a melhor exibição possível, né? Senão vocês viram ali quando ele colocou o fix size 44, ficou um quadrado que às vezes não é tão bom né?
62:19
Speaker A
Dependendo do gráfico. Nesse caso, por exemplo, que a gente tem um uma variação bem grande no eixo X, talvez seja melhor ter um ser um um gráfico um pouco mais espaçado, né? E por assim vai.
62:31
Speaker A
Uhum. Então, só pra gente deixar padrão aqui, vai ficar um 10zinho, vai ficar bem bonitinho. [roncando] E de novo aqui, a gente vai fazer agora um agrupamento pra gente poder mostrar como que tá nossos nossas [roncando] vendas por produto, por exemplo. Então,
62:48
Speaker A
a gente vai fazer um def. do grupo buy produto, a gente quer o faturamento deles. Então é um ponto SAM, então a gente vai pegar a soma deles e vai ordenar do maior pro menor. Por isso que a gente usa o short values ascend igual
63:02
Speaker A
a false. Se fosse, se não tivesse um assending de padrão, ele vem o true.
63:07
Speaker A
Então vem do menor pro maior. Eh, como vocês podem ver, primeiro eu criei aqui o faturamento por produto, que aí aqui a gente tem notebook.
63:19
Speaker A
monitor tals. E aqui é a mesma coisa. Se a gente vai criar o plt. Figure, eh, faturamento ponto por produto ponto plot, é que nesse caso o nosso faturamento por produto é um é uma series, então ele tem o ponto plot e a
63:35
Speaker A
gente coloca o kinda bar para ser uma um gráfico de barras. Deixa eu pilotar primeiro para vocês entenderem realmente o que cada linha tá fazendo. Eh, como tá com bastante zoom, eu vou diminuir esse aqui.
63:50
Speaker A
Vou aumentar aqui. Ah, acho que assim já tá bom. Tá. O PT. Xtics. Eu quero rodar o o nome de cada categoria 45º para uma não sobrepor a outra.
64:07
Speaker A
E o Y label eu coloco faturamento em reais. E aqui vem uma informação importante também que tem esse prt. Layout que ele o pandas mesmo já calcula, o pandas, o matchpot liba, eh, o título, todas as as strings, todos os
64:27
Speaker A
textos do gráfico, porque assim o o gráfico não sobrepõe. A gente vai ver toda vez que a gente roda isso é salvado. A gente vai mostrar depois aqui. Aqui, ó, o jeito de salvar, save figo.jpg, o nome do arquivo. JPG, tá? Eh, aqui na
64:49
Speaker A
prática talvez se fica um pouco mais fácil. Então, a gente vai rodar duas vezes, um layout, um sem o tie layout e um comig layout. Aqui embaixo vocês vão ver aqui, eh, eu vou colocar aqui a mesma proporção, só para vocês
65:06
Speaker A
verem realmente como vai mudar. E ele tá salvando um com layout, o nome, o título com layout, outro sem.
65:18
Speaker A
Eh, e importante que ele já salva aqui no nosso nosso conjunto de arquivos aqui do collab. Quando você vai no collab, caso você não esteja no collab, esteja, por exemplo, no VS Code rodando localmente no seu computador, ele vai salvar por padrão no diretório
65:36
Speaker A
mestre, no diretório p que você tá rodando Python. Então, se vier, ó, a diferença aqui, eu vou colocar lado a lado pra gente ver ó esse ó, a diferença aqui, eu vou colocar lado a lado pra gente ver.
65:55
Speaker A
Ó esse sem tá em layout, vocês vierem aqui, o faturamento tá cortando, então acaba que não fica tão visível. Já o com ele ele já corrigiu aqui na direita e na esquerda vocês podem ver a diferença.
66:12
Speaker A
Então, eh é algo que é sempre bom você colocar, dependendo do tipo de gráfico, se tiver dando erro.
66:24
Speaker A
Tá, deixa eu fechar pra gente ver. Tá, Mateus. E agora a gente acabou tudo, a gente conseguiu plotar. Tem vários tipos de de de eh de gráfico. E é sempre importante falar que ele vai também pilotar aqui, mas ele
66:44
Speaker A
salva. Como que a gente vai salvar agora o nosso datafame aqui que tá realmente todo mudado? A gente conseguiu mudar o nome do cliente para tudo maiúsculo. A gente calculou o faturamento, a gente pegou o dia da semana do cliente, o
66:59
Speaker A
ticket, se o ticket é alto ou não, categoria do faturamento. É aí que vem o df. Tu tipo, no caso, não é o tipo, é o o tipo que você vai querer. Você vai querer CSV, vai querer XLSX, vai querer
67:14
Speaker A
parque. Então, eh, aqui embaixo a gente vai salvar, a gente salva geralmente como CSV, arquivos pequenos, arquivos que a gente só tá treinando, que é um um jeito mais otimizado, um jeito mais simples, um jeito mais eh usual também. Então é só
67:34
Speaker A
você rodar df.tcsv e dataset atualizado.csv. Tô dando isso, eh, você vai ver que já vai ter baixado aqui também dataset atualizado, que vai ter tudo alterado.
67:49
Speaker A
Eh, então você conseguiu salvar, você conseguiu plotar e você conseguiu realmente agrupar, fazer eh estatísticas que você tem interesse de mostrar para alguém ou algo assim.
68:08
Speaker A
E essa foi nossa, só para, deixa eu só dar uma finalizada. É, é claro que vai parecer que são muitas funções. A gente apresentou para vocês aqui muitas funções de uma vez, mas é por isso que é realmente
68:19
Speaker A
importante. É, a gente fez isso basicamente para aumentar o repertório, tentar aumentar o repertório de vocês e o conhecimento, só que realmente é é muito importante que vocês tentem abrir o o dataset que a gente mandou para vocês, mexer nele, tentar usar as
68:35
Speaker A
funções, tentar plotar os gráficos, tentar realmente extrair algumas informações para praticando mesmo para para acabar aprendendo e tendo como repertório todas essas funções, como plotar, como mexer quando usar o group buy, como mexer com com linhas que tem valores nulos e tudo e
68:58
Speaker A
como baixar também e tudo mais. Então, basicamente é isso a nossa aula. Se alguém tiver alguma dúvida, pode mandar no chat do YouTube que a gente responde.
69:26
Speaker A
E eu vou também deixar, caso alguém se interessa, eh, a gente, eu vou deixar aqui também o nosso QRcode, que sempre que o PET Estatística faz uma apresentação, a gente deixa aqui o informes para vocês, se vocês quiserem
69:42
Speaker A
responder, para falar o que que vocês acharam positivo, o que achou que tem que melhorar e etc. caso também é para dar um feedback mais para para nós do pé de estatística mesmo, que é muito importante pra gente sempre tá
69:54
Speaker A
melhorando os nossos nossas apresentações e o que que vocês acham que realmente seria melhor, seria muito bom se vocês pudessem responder.
70:04
Speaker A
Se quiserem dá para mandar o link também sem ser pelo que se alguém tiver pelo celular, não sei.
70:16
Speaker A
Bem, pelo visto o pessoal não tá com nenhuma dúvida. Maurício Mateus, muito obrigado por festejar a gente com a aula aula de hoje. Ela foi muito boa.
70:26
Speaker A
Obrigado a todo mundo aqui que tá aqui assistindo, prestigiando a gente, eh acompanhando a gente ao vivo. E eu acho que é isso pra aula de hoje. Eh, vocês querem que eu mande o link no o link do Forms aí no chat?
70:45
Speaker A
Pode ser. Eu vou pegar o link aqui então. Se Maurício conseguir, não sei, senão eu procuro aqui.
70:50
Speaker A
Ixi, car. Vou pegar aqui rapidinho. Cadê? Eu achei aqui. É, já tá fácil também.
71:13
Speaker A
Tão fácil. Aqui consegui. Vou mandar aqui. Você consegue mandar lá? Obrigado pela aula, galera.
71:25
Speaker A
É isso. Muito obrigado. Obrigado. Boa noite, pessoal. Boa noite. Obrigado noite,
Topics:pandaspythonanálise de dadosdataframenumpymatplotlibestatísticagroupbytratamento de dadosminicurso

Get More with the SozAI App

Transcribe recordings, audio files, and YouTube videos — with AI summaries and speaker detection. 30 minutes free.

Or transcribe another YouTube video here →