Transcrições
1. Introdução: Bem-vindo ao curso Pandas. Neste curso,
exploraremos o Pandas,
uma das bibliotecas mais
essenciais para análise de dados em Python Este curso
fornecerá o conhecimento básico necessário para
trabalhar de forma eficiente com os dados. Começaremos configurando
nosso ambiente de trabalho usando álgebra e caderno
Anaconda para garantir que você tenha as ferramentas
certas para o Quando estiver pronto,
mergulharemos nos fundamentos do Pandas,
aprendendo a
criar, manipular
e analisar quadros de dados, a
estrutura de dados central
do Depois de dominar o básico, passaremos a trabalhar
com conjuntos de dados do mundo real, baixados de fontes abertas Você aprenderá como
limpar, transformar e organizar dados,
preparando-os para análises mais aprofundadas. Você encontrará o link
para download do conjunto de dados na descrição da
classe Também exploraremos a
indexação múltipla e as tabelas dinâmicas, ferramentas
poderosas para
estruturar ferramentas
poderosas para
estruturar e resumir dados de forma eficaz. Em seguida, abordaremos a
visualização de dados e os Pandas, transformando números brutos em gráficos
claros e informativos Também aprenderemos como armazenar quadros de
dados em um banco de dados, recuperá-los quando necessário e usar consultas SQL diretamente no Pandas para interagir
com Ao final deste curso, você estará confiante
em usar o Pandas para análise de
dados do mundo real, desde a
organização de
dados brutos até a extração de insights significativos.
Vamos começar.
2. Primeiros passos com Pandas: instalação, configuração do Anaconda, caderno Jupyter: Oi, pessoal. Bem-vindo ao
curso Pandas Atualmente, os dados são um
dos recursos
mais valiosos do mundo moderno, e ser capaz de manipulá-los, analisá-los e visualizá-los de
forma eficaz é crucial É aí que entra o Pandas, uma
das bibliotecas
Python mais poderosas para
análise de dados Pandas fornece uma
maneira rápida, flexível e fácil de usar de
trabalhar com dados estruturados Se você está lidando
com planilhas, grandes conjuntos de dados ou bancos de dados, Pandas permite que você limpe, transforme e analise É amplamente usado
em ciência de dados,
finanças, aprendizado de máquina e muitos outros campos em que as decisões baseadas em
dados
são essenciais. Dominar essa biblioteca é essencial para
todos que trabalham com dados, de analistas a pesquisadores e desenvolvedores
de software Uma das principais vantagens
de usar o Pandas sua capacidade de lidar e
analisar com
eficácia grandes volumes
de dados, graças a estruturas especiais
que facilitam o trabalho com tabelas de
dados e
sua análise Antes de começarmos a
trabalhar com o Pandas, precisamos nos preparar Primeiro, exploraremos distribuição
do anaconda
e os ambientes virtuais Assim, podemos escolher o que
funciona melhor para você. Anaconda é uma
distribuição do Python. Isso inclui não
apenas o PyTon em si, mas também muitas outras bibliotecas e
ferramentas
úteis para análise de dados
e computação específica Uma das principais vantagens do
Anaconda é que ele vem com
bibliotecas pré-instaladas, como Napi,
sky Pie, Mud Blood Leap,
Jupiter e, claro, Pandas Isso simplifica significativamente esse tipo de ambiente para análise de
dados e permite que você comece
a
trabalhar rapidamente em um projeto Conda é um gerenciador de pacotes e
ambientes para Python. Isso vem com o Anaconda. Ele permite que você instale,
atualize e gerencie versões de pacotes Python
e outras ferramentas de software Um dos principais benefícios do Conda é a capacidade de criar ambientes
isolados. Nesses ambientes, você pode instalar diferentes versões
do Python e seus pacotes, evitando conflitos entre projetos
diferentes e garantindo a
estabilidade do seu código Agora vamos começar a praticar. Primeiro, acesse a página
de instalação e siga as instruções. Começarei
mostrando como
instalá-lo no macOS e depois no Ubuntu Para macOS, acesse link
do instalador do macOS
e baixe o instalador Abra o download de um arquivo e inicie o processo
de instalação. Siga as instruções, conceda
permissões, concorde com os termos e aguarde a conclusão da
instalação O processo
levará alguns minutos. Depois que o Anaconda estiver instalado, ele solicitará que você atualize o
Anaconda Navigator para a Anaconda Navigator Então, vamos atualizá-lo. Após a atualização, você
pode
iniciar imediatamente o Jupiter Notebook
e começar a trabalhar Na parte superior, você verá os ambientes virtuais padrão criados pelo Conda com
todas as dependências, então você não precisa instalar o
Pandas. Já está lá. Você verá o
servidor Jupiter iniciando e
poderá abrir um documento que já possui ou
criar um novo Como você pode ver, tudo funciona e o Pandas
está pronto para uso Agora, vamos continuar com o Ubuntu. Acesse o link do Linux Installer. Primeiro, instale todas as dependências. Em seguida, baixe o instalador para Linux. Abra o terminal. Execute o arquivo baixado e inicie a instalação
seguindo as instruções. Concorde com os termos da licença e siga as instruções
da documentação Quando solicitado, selecione sim
para inicializar o Anaconda. Em seguida, abra o terminal e desative a ativação automática
do ambiente base. Ao instalar o
anaconda, desativar a ativação automática do ambiente base ajuda a evitar
bagunça desnecessária no terminal, oferece mais controle
sobre qual ambiente
ativar e evita o
uso acidental do ambiente base,
especialmente ao ativar e evita o
uso acidental do ambiente base, especialmente Dessa forma, você pode trabalhar em uma configuração mais
limpa e flexível. Reinicie o terminal para garantir que o ambiente base
seja desativado Você pode listar todas as dependências usando o comando Conda list Finalmente, inicie o
Anaconda Navigator. A partir daqui, siga
as mesmas etapas. Inicie o Jupiter, abra um novo arquivo ou um já criado e comece a trabalhar com o Pandas Ao abrir o Anaconda Navigator e ir para a guia Ambientes, você verá o ambiente de
desenvolvimento básico,
que o Anaconda criou Você pode adicionar ou excluir um novo ambiente de desenvolvimento ou gerenciar o ambiente
base existente. Aqui você pode ver o que
já está instalado ou usar a função de pesquisa para encontrar e instalar diretamente
os pacotes necessários. Se você preferir, como eu, trabalhar com o terminal, você pode abrir o
ambiente de desenvolvimento diretamente
do terminal e instalar todas as dependências usando
o gerenciador de pacotes P. Você também pode gerenciar ambientes
virtuais e
instalar Jupiter e Panda
separadamente sem o Anaconda Essa seria uma forma
completamente diferente organizar seu espaço de trabalho Agora, vamos começar a trabalhar.
3. A série Pandas explicada: criação, manipulação e comparação com matrizes NumPy: Então, vamos trabalhar. Se você decidir não usar o Anaconda e trabalhar com o ambiente
virtual, poderá instalar o Pandas usando
o comando Pep Install Pandas comando Pep Pandas fornece estruturas de
dados robustas
e fáceis de usar ,
perfeitas para
manipulação e análise de dados As principais estruturas de dados no Pandas são séries
e quadros de dados Essas estruturas são projetadas para lidar com diferentes tipos de dados e fornecer métodos
poderosos para manipulação
e análise de dados Uma série é uma
matriz unidimensional semelhante a um objeto. Isso pode conter dados de qualquer tipo,
incluindo números inteiros, cadeias de caracteres, flutuantes É semelhante a uma coluna em uma planilha
ou tabela de dados Cada elemento em uma série tem um rótulo associado
conhecido como índice, que permite acesso
rápido aos dados. Um quadro de dados é uma estrutura de dados
tabular bidimensional com eixos,
linhas e colunas rotulados É semelhante a
planilhas ou tabelas SQL. Antes de mergulharmos
nessas estruturas, é importante
entender que Pandas é construído sobre outra biblioteca fundamental
em Python chamada É a abreviação de Python
numérico e é uma biblioteca que fornece suporte para matrizes e matrizes Embora uma série Panda e matriz
numpi possam parecer
semelhantes à primeira vista, existem algumas Uma série tem um índice
que rotula cada elemento, facilitando o acesso aos dados por rótulo em vez de apenas
pela posição do número inteiro Uma matriz, por outro lado, usa
apenas posições inteiras Uma série pode conter
dados de tipos mistos, enquanto a matriz numpi
é homogênea, que significa que todos os elementos devem
ser do mesmo Vamos importar a
biblioteca Pandas e verificar sua versão. Agora vamos criar um quadro
de dados a partir dos dados que já
temos. E para isso, eu crio
um dicionário de listas. Lista. Vou importar o Napi
e usar a função randint, que abordamos
no curso Numpi Eu sugiro que você se
familiarize com isso. A função random gera números
aleatórios de ponto flutuante a
partir da distribuição
normal padrão. A função SID é
usada para inicializar o gerador de números aleatórios
com um valor CID específico Isso é útil para fins de
reprodutibilidade , como em simulações ou cenários de
teste em
que você deseja
reproduzir a mesma sequência Agora podemos ver nosso quadro de dados. Parece uma tabela
e consiste em linhas
representadas por rótulos de índice e colunas representadas
por rótulos de colunas. Cada coluna é uma série. Cada elemento no quadro de dados é acessado usando os rótulos de
linha e coluna. Resumindo, um quadro de dados no Pandas pode ser pensado
como uma coleção de objetos
sérios em
que cada série representa uma coluna
em um quadro de dados Eu removi peças desnecessárias. Uma série e Pandas podem ser criados a partir de
vários tipos de dados, incluindo listas. Nós
já temos um. Então, vamos criar uma
série a partir dessa lista. Ao criar uma
série a partir de uma lista, Bandas converte a lista em uma
estrutura semelhante a uma matriz unidimensional com um índice
associado Para criar uma série a partir de uma lista, você usa a série PD e passa
a lista como argumento. Opcionalmente, você também pode fornecer um índice para rotular os elementos Quando você não fornece um índice, Pandas atribui automaticamente um índice inteiro
começando Vamos criar outra série. Como dados, passo X
e, como índice, passo nossa primeira
lista L. Também podemos passar argumentos
sem seus nomes e obter o mesmo resultado. Vamos criar uma série a
partir de um dicionário. Se usarmos essa estrutura de dados, obteremos uma série em
que as chaves atuam no índice e os
valores representam os dados. E aqui podemos
ver claramente, no próximo exemplo, criarei duas séries que
contêm dados e índices. Vamos considerar uma
situação em que você deseja adicionar duas séries Panda
usando o operador plus Pandas realiza a adição de
elementos com base no alinhamento
de seus índices. Isso significa que os valores
de cada índice na série um são adicionados aos valores
do mesmo índice na série dois. Temos vários índices
idênticos aqui, então seus
números correspondentes são adicionados Se um índice estiver presente em uma série, mas não na outra, o resultado desse
índice será nenhum, não um número, indicando
um valor ausente. Uma coisa importante a observar é que, embora tenhamos
passado inicialmente dados inteiros, o resultado contém flutuações Isso ocorre porque o
Pandas
converte automaticamente números inteiros em flutuantes durante
operações
matemáticas
para lidar com não são valores e garantir consistência ao combinar Esse comportamento permite uma manipulação de dados
mais flexível e robusta,
acomodando perfeitamente valores ausentes
e tipos de dados mistos Vamos continuar com o quadro de dados.
4. Como dominar dataframes do Pandas: acesso, modificação, filtragem e indexação: Vamos continuar com os quadros de dados. Vou começar no documento e importar todas as bibliotecas
necessárias. Vamos criar nosso primeiro
quadro de dados com dados aleatórios. Vou gerar um quadro de dados com quatro linhas e quatro colunas. Para preencher esse quadro de dados
com números aleatórios, usarei uma função que
gera valores aleatórios. Também passarei uma lista como índice e definirei os rótulos das
colunas. Isso resulta em um quadro de dados
típico. Para acessar uma coluna, usamos a notação de colchetes
e passamos o nome da coluna Se precisarmos de várias colunas, passamos uma lista de nomes de colunas. Na verdade, podemos
realizar operações em colunas de quadros de
dados da
mesma forma que em séries, como adição, subtração
e multiplicação Por exemplo, vamos adicionar uma nova
coluna ao quadro de dados. Vou chamá-la de nova, e serão algumas das
colunas T e R. Como resultado, agora
temos uma nova coluna. Para excluir a linha, usamos
a função drop. Por exemplo, se eu excluir
a linha com o Índice A, ela pode parecer removida no início. No entanto, se eu chamar
o quadro de dados novamente, a linha A ainda estará lá. Isso acontece porque o Pandas não modifica o quadro de dados em vigor, a menos que especifiquemos parâmetro no local
igual configuração no local é igual a verdadeiro garante que as alterações
persistam no Caso contrário, o
quadro de dados original permanecerá inalterado. Da mesma forma que para descartar uma coluna, usamos a função draw, mas precisamos definir o
parâmetro do eixo igual a um. Como o eixo padrão é igual a zero, refere-se à exclusão de linhas Eu adiciono um lugar igual a
dois para que as alterações entrem em
vigor imediatamente E aqui excluímos a linha, e se eu especificar eixo igual a zero,
nada mudará Esse é o valor padrão. O atributo shape
retorna uma tupla que indica o número de linhas e colunas
no quadro de dados É útil quando você
precisa verificar rapidamente o tamanho do quadro de dados ou
validar as dimensões dos dados As linhas podem ser selecionadas passando o rótulo da linha para
a função de log. Lembre-se de que, para
selecionar uma coluna, não
precisamos da função de log. Podemos simplesmente usar a notação de
colchetes. Se quisermos selecionar linhas usando indexação baseada em
números inteiros, usamos o Isso nos permite
recuperar linhas com base em sua posição numérica,
independentemente do índice nomeado Por exemplo, usando IoC zero, retornaremos a primeira linha Por conveniência,
exibirei nosso quadro de dados novamente. Para extrair um
subconjunto específico de linhas e colunas, usamos a função log e
passamos rótulos de linha
e coluna
usando uma notação de vírgula Se quisermos um subconjunto de linhas e colunas
específicas, passamos duas listas, uma para linhas e
outra para colunas E aqui podemos ver o
subconjunto da coluna RT
e, como zeros,
há muitas
situações em que precisamos de um subconjunto de
dados que
atenda dados que
atenda E para isso, o Pandas fornece recursos de
filtragem. Pandas permite a seleção
condicional
para filtrar dados com base em condições
específicas Por exemplo, se
quisermos selecionar todos os valores de dados
maiores que zero, a saída será um quadro de dados
filtrado registros
não correspondentes serão
substituídos por nenhum,
não por um número Agora vamos tentar a filtragem
baseada em colunas. Vou extrair dados com base na
condição em que a coluna E tem
valores maiores que zero. Inicialmente, a saída
mostrará valores booleanos, verdadeiros quando a condição for
atendida e falsos caso contrário Para recuperar dados reais que atendam à condição, devemos aplicar a condição
diretamente ao quadro de dados Isso retornará somente as linhas em que a coluna E tenha valor
maior que zero. Se modificarmos a
condição, por exemplo, selecionando valores
maiores que um, a saída refletirá essa
nova condição adequadamente. O
método de redefinição do índice nos permite redefinir o índice para o índice numérico
padrão Quando redefinimos o índice, o índice antigo é adicionado como uma coluna e um novo
índice sequencial é criado O método set index nos
permite definir uma coluna existente como o
índice do quadro de dados. Aqui eu pego a coluna T
e a usei como um índice. Usando a função de divisão integrada
do Python, podemos
gerar uma lista com eficácia Podemos gerar uma
lista dessa forma. Leva muito menos tempo para que um item de vários valores
seja igual a três. Em seguida, adicione essa lista como uma
nova coluna em nosso quadro de dados. A função split
no Pandas é útil para separar strings
em várias partes
com base em um DelmeteRetraindo dados
específicos
ou criando novas colunas a partir de dados ou Se nenhum separador for especificado, a função split divide a
string por qualquer espaço em branco,
espaços, tabulações ou novas
linhas, como no
5. Trabalhando com o MultiIndex no Pandas: indexação hierárquica explicada: Como sempre, vamos importar
todas as bibliotecas necessárias. O índice múltiplo ou índice
hierárquico
é uma versão avançada do índice padrão no Pandas Você pode pensar nisso como
uma matriz de tuplas em que
cada mancha representa uma combinação de índice
exclusiva Essa abordagem permite estruturas de indexação
mais complexas Vamos começar criando
um quadro de dados simples. Em seguida, geraremos um índice hierárquico usando
a função from frame Este exemplo
nos ajudará a entender como criar um
índice hierárquico a partir de um quadro de dados Vamos começar criando
um quadro de dados simples. Primeiro, criamos um quadro de dados com uma lista de nomes de dados e colunas. Esse quadro de dados será
usado posteriormente para construir nosso índice
hierárquico Eu passo uma lista de dados
e nomes de colunas, e nosso quadro de dados está pronto. Agora temos um quadro de dados
típico. Ele inclui um índice, nomes de
colunas e dados. Esse quadro de dados será usado
para criar um objeto de índice. Usamos a função From frame e passamos nosso
quadro de dados como argumento. Agora temos um objeto de índice, que representa uma
lista de tuplas exclusivas Então, vamos criar um novo quadro de dados usando esse índice múltiplo finalizado Primeiro, preencho o
quadro de dados com números aleatórios. Em seguida, definimos uma estrutura com quatro linhas e duas colunas. Passamos o índice múltiplo
no parâmetro de índice. Por fim, definimos
os nomes das colunas para o novo quadro de dados. E agora podemos ver
o novo quadro de dados. Usamos o from frame para criar um índice múltiplo a partir de um quadro de dados, permitindo a
indexação hierárquica para melhor organização
dos dados E agora podemos criar um novo quadro de dados usando
esse índice múltiplo Porém, ao criar
um novo quadro de dados, o número de linhas nos dados deve corresponder
ao número de níveis de índice
para evitar incompatibilidades de tamanho Agora vou
mostrar como criar e trabalhar com um índice de uma forma
um pouco diferente. Primeiro, eu uso a função
split do Python para criar uma lista mais rapidamente Em seguida, uso a função Z para conectar cada par
de itens. Finalmente, eu os
converto em uma lista Taples. A função Z em Python emparelha elementos de
vários iteráveis, criando tuplas É útil para iterar várias sequências simultaneamente. Agora eu posso criar um
índice múltiplo a partir de uma matriz de taples usando a função
from Taples Portanto, temos nosso índice múltiplo e podemos integrá-lo
em um novo quadro de dados Primeiro, preencho o quadro de dados com dados aleatórios
, como fizemos acima. Em seguida, defino a estrutura com seis linhas e duas colunas. Em seguida, passo nosso
índice múltiplo, o atributo de índice
e, finalmente, defino os nomes das
colunas. Aqui está. Podemos ver nosso novo quadro de dados. Ok, vamos considerar o acesso a
dados com vários índices. Usando o atributo names, podemos definir nomes para os
níveis do índice múltiplo E aqui eu defino os nomes de
nossas colunas,
unidades e trabalhadores de vários índices .
Então, vamos praticar. Para maior clareza, podemos ver duas colunas marcadas,
unidades e trabalhadores. Para obter o salário do trabalhador
três da Unidade dois, eu uso a função log. Primeiro, indico a Unidade dois, depois especifico o Trabalhador três
e, finalmente, seleciono a coluna de
salário. O bloqueio duplo é usado porque o quadro de dados
tem um índice múltiplo O primeiro registro com a Unidade dois seleciona todas as linhas na Unidade dois, retornando um quadro de dados menor O segundo registro, trabalhador três, seleciona Trabalhador três
desse subconjunto e, finalmente, salário recupera todo o valor
específico da coluna, e agora temos
o resultado Vamos tentar outro exemplo. Obter horas de trabalho para o trabalhador um e o trabalhador
dois da Unidade dois. Você pode praticar sozinho. Publique o vídeo e tente
fazer isso sozinho. Eu uso a função de log para a Unidade dois, depois passo o Trabalhador um
e o Trabalhador dois como uma lista. E, finalmente,
indico a coluna de horas. Eu passo o trabalhador um
e o trabalhador dois como uma lista dentro de uma lista para
selecionar várias linhas ao mesmo tempo. Isso nos permite recuperar
as colunas de horas de
ambos os trabalhadores simultaneamente
do subconjunto de dados
na Unidade E agora temos o
horário de trabalho desses dois trabalhadores. Ignore os valores negativos, pois preenchemos o quadro de dados
com números aleatórios. Os dados do mundo real
conteriam valores válidos. Agora vamos praticar a seleção de
várias linhas e colunas. O que precisamos de uma interseção de várias linhas e
várias colunas Vamos obter salário e horas para o Trabalhador dois e o Trabalhador
três da Unidade dois. Primeiro, use a função Log
para selecionar a Unidade dois. Em seguida, passe o Trabalhador dois e o
Trabalhador três como uma lista. Por fim, selecione salário
e horas também como uma lista. Então, pause o vídeo e
tente fazer isso sozinho. Como você pode ver,
usamos o mesmo método,
a notação de função e
colchetes Em seguida, defina a Unidade dois
no primeiro nível, passando o trabalhador dois e o
Trabalhador três como uma lista
e, finalmente, passando
duas listas de colunas, salário e horas usando a notação de
colchetes Posso evitar passar colunas, salários e horas como uma lista porque
temos apenas duas colunas
em nosso quadro de dados. Nesse caso, todas as colunas
serão selecionadas automaticamente. Essas duas versões
darão o mesmo resultado. No entanto, se tivéssemos
mais de duas colunas, precisaríamos
listar explicitamente os nomes das colunas Então, esse foi um pequeno exemplo de como trabalhar com
indexação hierárquica O objetivo principal desta lição
é entender o que significa indexação
hierárquica e como
ela se integra à funcionalidade de indexação ela se integra Os índices múltiplos são
úteis no Pandas, mas nem sempre são
a Eles são comumente usados em conjuntos de dados
hierárquicos, análise de séries
temporais e ao trabalhar com dados agrupados ou dinâmicos No entanto, em muitos casos
práticos, um índice plano com
várias colunas é preferido para simplificar
e melhorar a legibilidade Portanto, não tenha medo.
Na maioria dos casos, não
precisaremos usá-lo, mas é essencial entender sua estrutura e como funciona.
6. Análise de DataFrame no Pandas: agrupamento, agregação e funções matemáticas: Agora, quero apresentar
a vocês um novo método em Pandas. E para isso, vou
criar um quadro de dados. Como sempre, no início, eu importo a biblioteca do Pandas Então eu crio um dicionário. E então, a partir desse dicionário, criarei o quadro de dados. A função head no Pandas retorna as primeiras
linhas do quadro de dados, normalmente usadas para
esperar rapidamente a
posição superior dos dados Por padrão, ele mostra
as primeiras cinco linhas. filtragem de linhas e colunas
na biblioteca Pandas pode ser
feita usando o método de filtro Usando Shift mais o comando top, você pode expandir e visualizar as condições sob as
quais podemos filtrar. Esse método permite
selecionar linhas e colunas com base em determinadas condições
especificadas pelo usuário. Como resultado, obtemos um quadro de
dados com linhas ou colunas que atendem
às condições especificadas. É importante
observar que a filtragem se aplica
somente ao
índice ou aos rótulos Os dados e o quadro de dados
em si não são filtrados. Nesse caso, ao
filtrar com o parâmetro items e
passar os nomes de nossas colunas, nome ou idade, obtemos apenas
os dados solicitados Se o parâmetro items
for especificado, ele permitirá que você indique
uma lista de colunas a serem mantidas. Se não for especificado, todas as
colunas permanecerão. Agora vou demonstrar o
exemplo usando o parâmetro. Esse parâmetro permite que
você especifique uma substring que deve
fazer parte do nome da coluna Somente as colunas cujos nomes contêm a string serão mantidas. Se eu verificar,
podemos ver claramente. Há também o parâmetro
axis. Esse parâmetro indica se
a filtragem deve ser aplicada às linhas, ao eixo SeQuls a zero ou às colunas e ao
eixo SeQuls eixo SeQuls Para deixar isso mais claro, adicionarei alguns valores exclusivos em vez
dos índices padrão, que podem ser lidos e filtrados com base em Depois de recarregar as linhas
usando o Shift plus Center, vamos ver como isso funciona Eu quero obter uma rosa que
contenha a substring BL, então vou especificar o
parâmetro igual a
BL e X é igual a BL e X Isso retornará
somente a linha com o índice azul e todas as informações
necessárias. Às vezes, é útil classificar o quadro de dados pelo valor
de uma ou mais colunas. A função de classificação de valores
é muito útil para isso. Você especifica o nome da
coluna ou a lista de colunas pelas quais a
classificação será feita Por exemplo, aqui, eu
classifiquei pela idade da coluna. Para ordem crescente, o parâmetro
ascendente
é definido como verdadeiro Se você quiser a
ordem decrescente, defina-a como falsa. Além disso, se você quiser alterar o quadro de
dados original diretamente, precisará definir o parâmetro in
place igual a verdadeiro, como fizemos anteriormente Por padrão, ele é definido como falso. Se você alterar o quadro de dados
e depois chamá-lo novamente, verá que nada
mudou , a menos que definamos
um local igual a verdadeiro. Para o próximo exemplo,
importarei a biblioteca Seaborn. Estou usando essa
biblioteca porque ela me
permite carregar
o conjunto de dados do Titanic Sim, o Seaborn tem um
conjunto de dados padrão que eu posso carregar. Agora vou carregar o conjunto de dados do
Titanic e exibi-lo para que possamos
ver os Seborn é a biblioteca PyTon usada para visualização de
dados estatísticos Ele simplifica a criação de gráficos informativos
e atraentes, facilitando a exploração
e a compreensão dos padrões de dados Você pode encontrar um tutorial para
esta biblioteca em meu perfil. Bem-vindo. Vamos nos familiarizar
com o grupo por método O método group by é
usado para agrupar linhas em um conjunto de dados com base nos valores
de uma ou mais colunas Deixe-me dar um exemplo para que você possa entender
como isso funciona. Neste exemplo, vou agrupar todas as pessoas do
navio por classe. Quando eu exibo o resultado, obtemos um grupo por objeto. Eu agrupei os passageiros
por classe de cabine e agora quero calcular
a tarifa média para cada classe Eu uso a
função mean para fazer isso. Dê uma olhada no resultado. Podemos ver uma grande lacuna. A primeira classe é muito cara. A segunda classe é mais acessível e a terceira classe
é a mais barata. Além disso, podemos ver a
tarifa máxima para cada classe ou a tarifa mínima. No entanto, a
tarifa mínima mostra zero. Vamos verificar se
existem esses dados. Portanto, os passageiros podem ter
viajado de graça ou podemos ter
dados ausentes nesse quadro de dados. Mas isso não afeta, por exemplo, é
só para demonstração. Vamos continuar com a agregação. agregação é o processo
de calcular uma ou várias métricas estatísticas para cada grupo formado
durante o agrupamento de dados O agrupamento de dados é feito
usando uma ou mais chaves, colunas e, em seguida, a agregação é realizada separadamente
para cada um desses Agora que estamos familiarizados
com o método agrupar por, podemos aplicar
funções de agregação como soma ou média aos dados agrupados Por exemplo, agrupei
os passageiros novamente por classe de
cabine e depois calculei a idade média
dos passageiros em cada classe Aqui podemos ver a correlação. Quanto menor a classe, menor a
idade média, que logicamente faz sentido Naquela época, os idosos
costumavam ser mais ricos, então viajavam
em classes mais altas Agora vou dar um
exemplo usando o método do ovo. Esse método,
abreviação de agregação, é usado para calcular estatísticas
agregadas para grupos de linhas formados
usando o método group by Eu agrupei os passageiros
por classe de cabine novamente. Agora, quero calcular
a idade média e tarifa
média
dos passageiros em cada classe. Essa notação é igual
à que vimos acima, mas escrita de uma forma
mais compacta Usamos o
método Ag para calcular a idade média e a tarifa
média em uma linha. Se você quiser, o método egg também
pode criar várias funções de
agregação Por exemplo, você pode calcular a média e o
máximo para cada grupo. O resultado incluirá
todas as métricas solicitadas, fornecendo uma
visão mais ampla dos dados. Se você estiver usando
várias funções, não se esqueça de colocá-las entre
colchetes
porque é uma lista
7. Trabalhando com conjuntos de dados reais: download de dados, análise e integração SQL no Pandas: Agora que cobrimos os títulos, é hora de solidificar nosso conhecimento trabalhando
com conjuntos de dados reais Mostrarei onde você pode encontrar dados reais para
seus projetos. Se você quiser praticar de forma
mais independente, eu recomendo fazer isso. Um tutorial ou vídeo
pode ensinar
mais do que experiência prática
com dados do mundo real Então, vamos considerar
fontes ruins para conjuntos de dados reais. E o primeiro, Cagle. Essa é uma plataforma na qual você pode baixar gratuitamente conjuntos de dados, explorar cadernos e aprender com outros entusiastas
de dados É um dos
melhores recursos para projetos de análise
de dados e
aprendizado de máquina. O segundo mundo dos dados. É outro ótimo recurso
em que você pode encontrar conjuntos de dados sobre vários tópicos e
baixá-los em vários formatos Em seguida, podemos usar o
data playground. Este site permite que você
navegue pelos conjuntos por tópico e formato
antes de fazer o download, facilitando a
localização de dados relevantes Se você quiser trabalhar com estatísticas do mundo
real, UNICEF fornece conjuntos de dados relacionados
ao desenvolvimento global,
saúde e educação Esses recursos são muito úteis, especialmente se você quiser
criar um projeto favorito que reflita o estado real das coisas de um tópico selecionado. Para quem não sabe, um projeto
favorito é um projeto você faz em casa para mostrar em uma entrevista ou simplesmente para praticar e entender
como as coisas funcionam Muitos governos oferecem portais de dados
abertos onde você pode baixar
conjuntos de dados sobre imóveis, saúde, finanças e muito mais Fui a um site governamental de dados
abertos. E decidi
baixar um conjunto de dados contendo informações sobre vendas de
imóveis 2001-2020 Eu baixei o
conjunto de dados em formato CSV, que contém dados sobre transações
imobiliárias
ao longo dos anos Este é o conjunto de dados que
usarei para nosso projeto. Em primeiro lugar, eu porto Pandas e uso o método read CSV
para carregar o Como estou no mesmo
diretório do arquivo do conjunto de dados, não
preciso especificar um caminho
completo, o nome do arquivo Quando você tenta carregar um grande
conjunto de dados em um quadro de dados, Pandas tentam
determinar automaticamente os tipos de dados
para cada coluna No entanto, para grandes conjuntos de dados, esse processo pode consumir
muita memória e geralmente
leva muito tempo Para evitar isso, você
tem duas opções especificar
manualmente
os tipos de dados para cada coluna usando o parâmetro tipo
D ou definir o parâmetro pouca
memória igual a falso para permitir que os Pandas usem mais
memória para melhorar Como nosso conjunto de dados contém
quase 1 milhão de linhas, não
é surpreendente
que tenhamos recebido uma mensagem de aviso
ao carregá-lo Quando você carrega um grande conjunto e quer
ver sua aparência, não
precisa exibir
o quadro de dados inteiro O método principal permite que você revise apenas uma parte dele. Da mesma forma, você pode visualizar
um número específico de linhas a partir do final
usando o método tail. O método info ajuda você a ter uma visão geral do
seu quadro de dados, incluindo muitas informações, como número
total de
linhas e colunas, contagem de
valores não nulos em cada coluna, uso de
memória e outros O método describe fornece uma descrição estatística dos dados
numéricos
no quadro de dados Com isso, você pode facilmente ter uma ideia geral da distribuição e
das estatísticas do seu conjunto de dados numéricos Inclui desvio
padrão médio, quartis
mínimos e máximos e Há também uma
poderosa biblioteca Python chamada SQL alchemy, que permite trabalhar com bancos de
dados SQL É particularmente útil se você quiser armazenar
ou recuperar e processar grandes conjuntos de dados com
eficiência usando consultas SGWL alquimia SQL é uma biblioteca popular para interagir com bancos de dados relacionais SQLite é outra opção, que é um sistema de gerenciamento de
banco de dados relacional de
alto desempenho incorporado sistema de gerenciamento de
banco de dados relacional de
alto desempenho que é fácil de usar e não requer um servidor
separado Ele permite o armazenamento
e o gerenciamento de dados em um armazenamento de arquivos local sem a necessidade de um servidor de dados
separado. Bem, não se deixe intimidar
por esse código. É padrão. Você pode simplesmente copiá-lo
da documentação. Tudo o que você precisa fazer agora
é entender o que ele faz. Aqui, importamos e criamos um mecanismo para se conectar
ao banco de dados. Suponha que você precise
transferir dados de um dataframe Pandas
para um banco de dados, onde você possa trabalhar
com eles posteriormente
ou armazená-los para Vou demonstrar
como fazer isso. Criamos um mecanismo
conectado ao banco de dados de testes. Deixe-me lembrá-lo de que seu quadro
de dados se parece com isso. Aqui está usando
o método de dois CSV. Em seguida, gravamos nossos
dados em uma tabela, que chamei de Nova tabela. O segundo parâmetro, é
claro, é o nosso motor. Como podemos ver, acabamos de salvar quase 1 milhão de linhas na nova tabela
no banco de dados de teste. Vamos tentar ler tudo o que
salvamos nesta tabela. Em outras palavras,
queremos extrair e obter nosso quadro de dados que
acabamos de salvar no banco de dados. Para isso, eu uso
read SQL e mais nossa tabela a partir da
qual pretendemos ler tudo
no primeiro parâmetro. O segundo parâmetro é o mecanismo pelo qual estamos conectados
ao banco de dados de mesa. Eu salvo nosso
quadro de dados extraído na variável read DF e podemos ver o que
salvamos no E então
pudemos recuperá-lo. Aqui está. Mas
não vamos nos debruçar sobre isso Podemos ler não apenas todo
o quadro
de dados do banco de dados
em que o salvamos, mas também pegar partes específicas
com as quais planejamos trabalhar. Agora vou mostrar
como podemos formar consultas
SQL antes de
passá-las como parâmetro Saber trabalhar
com consultas SQL é muito útil para todos, seja você analista de dados
ou desenvolvedor de software A habilidade será útil. Na primeira e mais simples consulta, vou ler todos os
registros da tabela, e o símbolo do asterisco significa que
estou selecionando todos os registros Então eu passo essa consulta e o primeiro parâmetro
para a mesma função que usamos para leitura. Obviamente, o segundo
parâmetro é o mecanismo, que é nossa conexão com
o banco de dados. Isso levará um pouco de tempo. Essencialmente, obtemos a mesma
coisa para todo o quadro de dados. Agora, se eu substituir o
asterisco pela cidade, não
obterei o quadro de dados
inteiro Eu só vou receber
as linhas selecionadas. Vou receber apenas
o que selecionamos. No meu caso, serão cidades. Para entender melhor
como isso funciona, vamos tentar outra coisa. Quero recuperar todas as
informações do nosso quadro de dados, mas apenas para uma cidade específica Digamos que Ashford. E olha, obtivemos
informações sobre vendas de
imóveis relacionadas
apenas à cidade de Ashford É conveniente e você
não precisa arrastar informações
desnecessárias
em seu quadro de dados se precisar trabalhar apenas
com uma cidade específica.
8. Tabelas dinâmicas no Pandas: limpeza de dados e análise de dados do mundo real: Quando obtemos dados que
precisamos processar ou analisar. Na maioria dos casos, não podemos
começar a trabalhar com eles imediatamente
porque são dados brutos. O resultado obtido
será diretamente influenciado pelo fato de
cada coluna ter sido preenchida com o tipo de dados
apropriado e se houver algum valor
vazio ou zero. Quando recebemos dados,
uma análise inicial é extremamente necessária. O comando INL ajuda a identificar valores
ausentes ou zero no objeto
do quadro de dados Ele retorna um novo quadro de dados
do mesmo tamanho do quadro de dados
de entrada, em que cada elemento é verdadeiro se o
elemento correspondente estiver ausente ou zero e, caso contrário, cai. Esse método é muito útil para limpar e analisar
dados
, pois permite identificar locais onde os
dados originais têm valores ausentes. Deixe-me lembrá-lo aparência do
seu quadro de dados depois de usar o INL. Para lidar com esses valores ausentes, podemos usar vários métodos. Por exemplo, fillna
nos permite substituir valores
vazios por um valor específico No meu caso, usei zero. Atenção especial deve
ser dada aos nomes das colunas. Usando colunas, posso recuperar todos os nomes das colunas como uma lista
e avaliar sua validade Em muitos casos, renomear colunas é desejável para melhor
legibilidade e usabilidade Isso inclui remover aspas
desnecessárias, eliminar espaços extras, converter todas as colunas
nomeadas em minúsculas e substituir espaços por
sublinhados, se o nome
da coluna consistir em duas ou mais palavras Deixe-me começar com um exemplo
simples de Python. Suponha que temos uma
variável
A contendo a string Nick e aplicamos
o método lower a ela. Isso transforma todas as letras minúsculas, resultando No entanto, simplesmente
aplicar esse método às colunas do quadro de dados
não é possível, pois os nomes das colunas não
são
tratados diretamente como cadeias Se verificarmos o tipo e o
primeiro caso e no segundo, podemos ver a diferença. Para processá-los corretamente, eu uso o acessador STR que permite operações de string
para cada nome de coluna Então, o que estamos fazendo aqui, o primeiro adiciona nomes de
colunas de acesso usando SDR e depois os converte em
minúsculas usando o método lower E, finalmente, substitua espaços por sublinhados
usando o método replace Essa abordagem nos permite limpar com eficiência
os nomes das
colunas sem usar
loops ou nomenclatura manual Podemos reduzir o número
de linhas e executar todos os comandos sequenciais em uma única linha usando a notação de
pontos. É chamado de encadeamento de métodos. Depois de realizar
essas modificações, preciso reatribuir os nomes das colunas processadas
ao quadro de dados Esse processo é
chamado de limpeza de dados. Aqui, substituímos valores vazios, padronizamos os
nomes das colunas por conveniência e evitamos possíveis erros
no processamento futuro de dados Como eu não especifiquei
o parâmetro e coloquei igual a verdadeiro ao preencher
os valores ausentes, você pode ver que eles ainda
estão lá, mas você mesmo pode
substituí-los facilmente por zero Basta executar o fill N novamente e
certifique-se de salvar o resultado. Outro
método importante é o dropna
, usado para remover
linhas ou colunas de
um quadro de dados que contém valores
ausentes ou zero Por padrão, se nenhum
parâmetro adicional for especificado, elimine as linhas do NREMS que
contêm valores ausentes No entanto, isso pode
resultar na exclusão de todas as linhas se alguma
coluna tiver valores ausentes. Para especificar se queremos
eliminar linhas ou colunas, usamos o parâmetro axis. O eixo é igual a zero, padrão remove as linhas
e o eixo igual a um remove as Por exemplo, definir um
eixo igual a um excluirá colunas
em vez de linhas, produzindo um resultado completamente
diferente Como podemos identificar valores
exclusivos? E para isso,
usamos um método exclusivo. É útil para identificar valores
distintos em uma coluna
específica do quadro de dados. Isso ajuda na análise de dados
categóricos, como contar o número de categorias
diferentes ou
identificadores exclusivos em Por exemplo, para
determinar o número de cidades
exclusivas
na coluna vila, usarei DF, depois cidade entre colchetes
e o método E obtivemos o resultado. Ao contrário do
método único e exclusivo, conta o número de valores
exclusivos em cada
coluna ou linha de
um quadro de dados, ajudando a
analisar a distribuição de dados. Aqui temos 18 cidades únicas. Outro método útil
são as contas de valor, que contam as ocorrências de cada valor exclusivo em
uma coluna do quadro de dados Ele retorna uma série em que valores
exclusivos são
listados como índices e suas contagens aparecem
como valores correspondentes Esse método é
particularmente útil para entender a distribuição
de dados categóricos, identificar as categorias mais
comuns e analisar a frequência
de valores exclusivos Por exemplo, o uso de contas de
valor na coluna da cidade nos permite ver quantas vezes cada cidade única aparece
em nosso quadro de dados. E agora,
deixe-me apresentar o conceito
de tabela dinâmica. Uma tabela dinâmica é usada para criar
uma tabela de resumo a partir dos dados
contidos em um quadro de dados Ele ajuda a
agrupar e agregar dados de acordo com determinados critérios e os
organiza em um formato
conveniente para análise Como resultado, ele nos fornece uma tabela útil para
análise e visualização adicionais Vou criar uma
tabela dinâmica a partir de nossos dados. Vou usar a soma das vendas, somar o valor e, para o índice, quero ver a
cidade e o endereço. Para as colunas,
usarei o tipo de propriedade. Veja a mesa que temos agora. Agora podemos trabalhar somente
com os dados de que precisamos. Vamos refiná-lo ainda mais e
preencher os valores vazios. E agora que
refinamos nossos dados, podemos passar para outras ferramentas. Em princípio, 90% do seu trabalho envolverá
o que acabamos de fazer. Pandas é amplamente usado para manipulação, análise
e visualização de
dados É ótimo para filtrar,
agrupar e remodelar dados, além de realizar cálculos
como soma Também é essencial para trabalhar com dados de séries temporais e resumir informações
usando funções como descrever ou tabela dinâmica Vamos também explorar a
visualização de dados e os Pandas.
9. Visualização de dados do Pandas: gráficos, gráficos e insights: visualização de dados
é o processo de criar
representações gráficas de dados para entender a estrutura e identificar padrões, tendências
e relacionamentos Podemos usar vários
gráficos, diagramas e outros elementos visuais para transmitir informações e
facilitar a análise de dados Qual formato de dados é
mais fácil para você perceber. Se eu mostrar informações
em formato
tbar versus visual O formato visual é
, sem dúvida, mais
amigável e
fácil de entender. A análise visual também pode
ajudar a identificar anomalias, discrepâncias e
padrões inesperados nos Pandas, que
discutimos anteriormente, incorporou ferramentas para visualização de
dados com
base na biblioteca Matlot Lip Mat Blot Lip é uma biblioteca
Python para visualização de dados
que fornece uma ampla variedade de recursos para
criar vários tipos de
gráficos e diagramas para
análise e exibição de gráficos e diagramas para
análise e Quero reiterar
que Pandas e Matlot Leap são As ferramentas de
visualização integradas e Pandas são baseados
no Matplot leap, mas fornecem
um nível mais alto de
abstrações e
simplificam o processo
de abstrações e
simplificam o processo os
Pandas são baseados
no Matplot leap,
mas fornecem
um nível mais alto de
abstrações e
simplificam o processo
de criação de gráficos simples. A escolha da biblioteca
depende de suas necessidades específicas. Se você precisar
visualizar dados rapidamente no quadro de dados do
Pandas
usando uma sintaxe simples, as ferramentas de
visualização integradas no Pandas Se você precisar de mais controle sobre os gráficos ou precisar criar visualizações
mais complexas, Matlock Leap pode
ser Freqüentemente, as duas bibliotecas são usadas dependendo
das tarefas específicas. Vamos começar com as ferramentas
incorporadas mais simples em Python. Como sempre, vamos
importar tudo o que
precisamos e criar um
quadro de dados com dados aleatórios. O principal método de
visualização é o gráfico, que pode ser chamado no
quadro de dados ou no objeto da série Eu criei um
quadro de dados e o
preenchi com números aleatórios
usando a biblioteca Numbi Como primeiro exemplo, vamos traçar um gráfico de linhas
para todas as colunas. Nas versões mais recentes
dos livros de nós do Jubter, você geralmente não
precisa usar comandos como PLT show ou Mtlot leap in Mutlot entra na fila e esse comando mágico
é
aplicado automaticamente na versão mais recente dos livros de nós
de Júpiter Portanto, os gráficos serão exibidos em linha por padrão, sem
a necessidade desse comando Em muitos casos, ligar para PLT show também não
é necessário. Nos cadernos de Júpiter,
os gráficos são exibidos automaticamente após a execução de um comando de
plotagem No entanto, se você quiser controlar, quando o gráfico aparece como em scripts ou
outros ambientes, você ainda pode usar PLT show. Portanto, para a maioria das
tarefas básicas de plotagem em Júpiter, você pode simplesmente
criar gráficos sem precisar desses comandos.
Se estiver trabalhando em
um ambiente diferente ou em um script
Python fora
do notebook e
quiser que os gráficos sejam exibidos automaticamente sem
precisar chamar PLT você pode simplesmente
criar gráficos sem
precisar desses comandos.
Se estiver trabalhando em
um ambiente diferente ou em um script
Python fora
do notebook e
quiser que os gráficos sejam exibidos
automaticamente sem
precisar chamar PLT show, você pode usar essa configuração. Em seguida, vamos criar um
histograma para a coluna A.
Vou chamar plot e construir um histograma na série do nosso quadro
de dados Posso alterar o parâmetro Bins, que controla o número de
colunas em nosso histograma Ao ajustar o número de compartimentos, posso obter uma
visão mais detalhada ou mais geral dos dados Em seguida, vamos criar um gráfico de dispersão. Os gráficos de dispersão são frequentemente usados para identificar correlações
ou Eles nos ajudam a ver como
duas variáveis interagem. No nosso caso, como
tenho dados aleatórios, isso não revelará muita coisa. Mas com dados reais, que abordamos na lição anterior,
os gráficos de
dispersão podem fornecer informações
valiosas Agora vou mostrar
como criar por gráfico com base nos dados
de um objeto em série. Primeiro, eu crio a série
e depois construo o gráfico. Usamos o método Pipe, que gera um gráfico circular com base nos valores
de nossa série. Você também pode exibir
as porcentagens de cada parte do Pi Nesse caso, exibo as porcentagens com
uma casa decimal Os gráficos circulares são normalmente
usados para visualizar proporções ou as relações
percentuais entre diferentes categorias A seguir, vamos dar uma
olhada no gráfico da caixa. Boxplot é usado para visualizar
a distribuição dos dados mostrando os quartis
medianos, valores mínimos Eles também podem ajudar a detectar
possíveis valores discrepantes. Você pode organizar as
caixas na vertical
ou na horizontal definindo
o Além disso, podemos
personalizar as cores das tampas das caixas, sejam linhas cinzas
representando as medianas e os bigodes O gráfico de área mostra
os dados em uma forma de áreas empilhadas para cada
coluna no quadro de dados Se você definir a opção
stacked false, ela evitará que as áreas
se sobreponham e em vez disso, mostrará os valores
agregados ela evitará que as áreas
se sobreponham e,
em vez disso, mostrará os valores
agregados de cada coluna separadamente. Isso é útil para comparar o quanto cada coluna
contribui para o total. A seguir, mostrarei como
criar um gráfico de dispersão de Hg Bin. Usamos o método Hg Bin
para criar esse gráfico. O parâmetro de tamanho da grade especifica o número de
hexágonos usados no gráfico Um tamanho de grade maior leva
a um gráfico mais detalhado, mas pode
dificultar a interpretação. Os gráficos hexbin são
ótimos para visualizar a densidade de pontos de dados
em um espaço bidimensional, especialmente quando você tem
um grande número Vamos também explorar a criação de
uma matriz de gráfico de dispersão. Uma matriz de gráfico de dispersão visualiza as relações entre várias
colunas de um quadro de dados Para isso, criei,
novamente, um quadro de dados com
a biblioteca do árbitro Métodos, como usamos anteriormente,
como área de dispersão, caixa
e outros, estão disponíveis por meio de plot e
Pandas porque
são construídos na integração
Mud plot
Leap por meio de plot e
Pandas porque
são construídos na integração
Mud plot
Leap para visualizações básicas. No entanto, a matriz do gráfico de dispersão
requer uma entrada separada, pois gera vários gráficos de
dispersão ao mesmo tempo, tornando-a mais complexa do que os métodos de plotagem
padrão Então eu chamo de matriz de dispersão, passo nosso quadro de dados Você pode ajustar a transparência com o parâmetro Alpha 0-1.
Defina o tamanho da figura. Ele define o
tamanho da figura para seis por 6 “, determinando as
dimensões gerais do gráfico para melhor legibilidade
e controle do layout, e usa estimativas de
densidade do kernel
na diagonal para uma visualização
mais suave Cada gráfico na diagonal mostra a distribuição
de cada coluna. As matrizes do gráfico de dispersão são úteis para comparar
simultaneamente todos os pares de variáveis em um quadro de dados, ajudando a identificar correlações comparar
simultaneamente todos os pares
de variáveis em um quadro de dados,
ajudando a identificar correlações
e dependências complexas. Embora a geração de gráficos de
dispersão para cada combinação de variáveis possa ser computacionalmente
intensiva, matriz
do gráfico de dispersão simplifica esse processo e permite Bem, abordamos a maior parte do que o Pandas oferece para visualização de
dados, mas ainda há
mais ferramentas e bibliotecas disponíveis para
ajudar nessa tarefa No ecossistema Pandas, várias bibliotecas podem
ajudar na visualização, e você pode escolher de
acordo com sua preferência Parabéns por concluir o curso
. Agora você tem uma base sólida no Pandas para análise de dados Se você quiser ir mais longe, confira meus tutoriais sobre
Mud Blot leap, seaborne
e StreamLTT para aprimorar
suas habilidades de visualização e construção, e StreamLTT para aprimorar
suas habilidades de visualização e continue aprendendo
e confira meus tutoriais sobre
Mud Blot leap, seaborne
e StreamLTT para aprimorar
suas habilidades de visualização e construção, continue aprendendo
e até o próximo curso.