Polares: biblioteca Python para rapidez no processamento de dados. Análise com um grande conjunto de dados real | Olha Al | Skillshare
Pesquisar

Velocidade de reprodução


1.0x


  • 0.5x
  • 0.75x
  • 1x (Normal)
  • 1.25x
  • 1.5x
  • 1.75x
  • 2x

Polares: biblioteca Python para rapidez no processamento de dados. Análise com um grande conjunto de dados real

teacher avatar Olha Al

Assista a este curso e milhares de outros

Tenha acesso ilimitado a todos os cursos
Oferecidos por líderes do setor e profissionais do mercado
Os temas incluem ilustração, design, fotografia e muito mais

Assista a este curso e milhares de outros

Tenha acesso ilimitado a todos os cursos
Oferecidos por líderes do setor e profissionais do mercado
Os temas incluem ilustração, design, fotografia e muito mais

Aulas neste curso

    • 1.

      Introdução

      1:34

    • 2.

      Introdução aos polares: as principais diferenças dos pandas e por que é mais rápido

      6:07

    • 3.

      Instalando polares, carregando DataFrames e acessando colunas de forma eficiente

      7:12

    • 4.

      Manipulação de dados em polares: operações aritméticas, gerenciamento de colunas e técnicas de filtragem

      8:05

    • 5.

      Como dominar DataFrames em Polars: fatiamento, estatística descritiva e exploração avançada de dados

      9:52

    • 6.

      Explorando os métodos de DataFrame do Polars: bandeiras, esquema, operações de colunas e técnicas de conversão de dados

      7:38

    • 7.

      Manipulação avançada de dados no Polars: agrupamento, agregação, classificação e transformação personalizada

      5:25

    • 8.

      Operações avançadas de dados no Polars: write_csv, tabelas dinâmicas e estratégias de junção

      8:20

    • 9.

      Entendendo a execução ávida e preguiçosa em Polars: comparação de velocidade com o Pandas para o Big DataFrame

      16:53

    • 10.

      Visualização de dados em polares. Vantagens, limitações e uma análise comparativa

      4:23

  • --
  • Nível iniciante
  • Nível intermediário
  • Nível avançado
  • Todos os níveis

Gerado pela comunidade

O nível é determinado pela opinião da maioria dos estudantes que avaliaram este curso. Mostramos a recomendação do professor até que sejam coletadas as respostas de pelo menos 5 estudantes.

1

Estudante

--

Sobre este curso

Pronto para turbinar sua análise de dados?

Neste curso, você se aprofundará no Polars, a biblioteca rápida e eficiente criada para lidar com grandes conjuntos de dados com facilidade. Se você tem lutado com problemas de desempenho usando o Pandas, ou simplesmente quer trabalhar mais rápido com grandes quantidades de dados, este curso é para você.

Vou orientar você em tudo, desde os conceitos básicos de carregamento e manipulação de dados até conceitos mais avançados como avaliação preguiçosa e processamento em blocos. Você também vai aprender a comparar Polares com Pandas em cenários reais, e por que Polars podem ser revolucionários.

Vamos trabalhar com um enorme conjunto de dados do mundo real que tem vários gigabytes de tamanho, proporcionando experiência prática no processamento eficiente de grandes conjuntos de dados.

Ao final deste curso, você estará apto para processar milhões de linhas em uma fração do tempo que leva com métodos tradicionais. Junte-se a mim e descubra como simplificar seu fluxo de trabalho e levar sua análise de dados para o próximo nível.

Se você tem dificuldade em usar Python ou se não estiver familiarizado com Pandas, receba meus cursos:
Programação em Python: de iniciante a domínio em OOPPPandas
para análise de dados: domine o manuseio de dados em Python

Conheça seu professor

Teacher Profile Image

Olha Al

Professor
Level: Intermediate

Nota do curso

As expectativas foram atingidas?
    Superou!
  • 0%
  • Sim
  • 0%
  • Um pouco
  • 0%
  • Não
  • 0%

Por que fazer parte da Skillshare?

Faça cursos premiados Skillshare Original

Cada curso possui aulas curtas e projetos práticos

Sua assinatura apoia os professores da Skillshare

Aprenda em qualquer lugar

Faça cursos em qualquer lugar com o aplicativo da Skillshare. Assista no avião, no metrô ou em qualquer lugar que funcione melhor para você, por streaming ou download.

Transcrições

1. Introdução: Oi, pessoal. Você está cansado do processamento lento de dados? Você tem dificuldades com grandes conjuntos de dados que levam seu sistema ao limite Se você trabalha com dados e precisa de velocidade, eficiência e escalabilidade, este curso é exatamente o que você precisa Vamos nos familiarizar com a biblioteca do Pollard e compará-la com os sempre populares Pandas Se você está cansado de esperar grandes quantidades de dados sejam carregadas e processadas no Pandas, este tutorial é para você porque essa biblioteca está configurada para substituir o Pandas, mas será que ela realmente será capaz de fazer isso? Ao contrário do Pandas, o polars foi projetado para lidar facilmente com grandes conjuntos de dados usando processamento paralelo avançado e avaliação lenta É isso que exploraremos nesta sessão. Abordaremos os princípios básicos de como a polars opera, discutiremos suas vantagens e desvantagens e compararemos com a Pandas em termos de desempenho e Também examinaremos as principais funções para trabalhar com dados usando exemplos principais para ilustrar esses conceitos Você descobrirá como os polares superam os pandas. Ao trabalhar com conjuntos de dados com mais de 100 milhões de linhas, você aprenderá a processar dados em partes, permitindo que você trabalhe com eficiência sem ficar sem memória Exploraremos a visualização de dados polares e, o mais importante, você entenderá o modo preguiçoso, o segredo por trás dos polares Ao final deste tutorial, você terá uma sólida compreensão de como usar polares para suas necessidades de análise de dados e poderá decidir se é a ferramenta certa para seu projeto ou não Então, prontos para levar suas habilidades para o próximo nível, vamos mergulhar. 2. Introdução aos polares: as principais diferenças dos pandas e por que é mais rápido: Olá pessoal, vamos nos familiarizar com a biblioteca polars e a compararemos com os sempre populares Pandas Polars é uma biblioteca de quadros de dados rápida e eficiente projetada para trabalhar com grandes conjuntos Ele foi desenvolvido pensando no desempenho, utilizando processamento paralelo e multiencadeamento para lidar com manipulação de dados rapidamente Polars é implementado no RST, o que permite oferecer velocidade superior comparação com outras bibliotecas de quadros de dados, como A biblioteca oferece suporte a operações como filtragem, agregação e transformação de dados, e é particularmente útil para analistas e cientistas de dados que precisam trabalhar com grandes volumes de dados de Com uma API Pattern e Rust, polars é acessível e poderoso para fluxos de trabalho modernos de processamento de dados Como eu disse antes, essa biblioteca fornece uma ampla variedade de funções para manipulação, agregação e transformação de dados agregação e Mas, na minha opinião, sua principal característica é a avaliação preguiçosa. O que é avaliação preguiçosa? A avaliação é uma estratégia computacional que atrasa a execução de uma operação até que seu resultado seja realmente necessário No contexto das polares, isso significa que as operações de manipulação de dados não são executadas imediatamente quando são definidas Em vez disso, eles são registrados como uma série de etapas a serem executadas posteriormente. Essa abordagem permite que os polares otimizem toda a sequência de operações, reduzindo a carga de trabalho computacional geral e melhorando desempenho executando apenas os cálculos necessários Outro recurso importante é o processamento multiencadeado. Uma das principais vantagens do polars é a capacidade de processar dados usando vários segmentos ao mesmo tempo Isso significa que, em vez de realizar tarefas uma após a outra sequencialmente, os polares podem dividir a carga de trabalho em partes menores e executá-las simultaneamente em vários Eles aceleram significativamente as operações de dados, especialmente ao trabalhar com grandes conjuntos de dados. Polars alcança a eficiência porque é construída com rust, uma linguagem de programação projetada para alto desempenho e gerenciamento seguro Rust facilita o trabalho com computação paralela, que significa que os polares podem utilizar totalmente a potência dos computadores modernos com processadores de vários núcleos Outro recurso poderoso polares é sua capacidade de mapear dados na memória Isso significa que, em vez de carregar um grande conjunto de dados inteiro no Rum, que pode deixar seu computador lento ou até mesmo causar falhas, os polares podem ler e processar apenas as partes necessárias no momento Por exemplo, se você estiver trabalhando com arquivo CSV ou Parki massivo, polars não precisará carregar o arquivo inteiro na memória Em vez disso, ele acessa os dados diretamente do arquivo conforme necessário, tornando o processo muito mais rápido e mais eficiente em termos de memória Esses recursos tornam os polares uma excelente opção para trabalhar com big data Como ajuda analistas e pesquisadores a lidar com grandes conjuntos rápida e eficaz sem necessidade de hardware de ponta, polars é construído com base no apache arrow, um formato de dados projetado para tornar armazenamento e a transferência de dados mais rápidos e eficientes Pense na seta como uma forma altamente otimizada de organizar e estruturar dados para que possam ser processados rapidamente por diferentes sistemas, porque a seta é usada por polares, ela permite que os polares compartilhem dados sem problemas com outras ferramentas e sistemas que também Por exemplo, se você estiver trabalhando em polares e quiser passar seus dados para sistema diferente, como uma ferramenta de aprendizado de máquina ou outra biblioteca de análise de dados, AR faz com que a transferência de dados ocorra de forma suave e eficiente, sem precisar converter os dados em um formato diferente, que pode ser lento Outro recurso que torna os polares fáceis lagos como Pandas é uma das ferramentas mais populares para análise de dados em Python , e muitos analistas e cientistas de dados já estão familiarizados com seu funcionamento O Polars foi projetado para parecer familiar aos usuários do Pandas. Então, se você já conhece o Pandas, pode começar a usar polares sem precisar aprender tudo No entanto, embora a API pareça familiar, as polares têm a vantagem adicional de desempenho de serem mais rápidas e eficientes, especialmente ao lidar com grandes conjuntos Portanto, se você vem do Pandas, pode se beneficiar da mesma sintaxe fácil de usar, mas aproveite a velocidade e a eficiência de memória dos Embora o polars tenha muitos recursos excelentes, há algumas limitações a serem consideradas É importante ter em mente que, como qualquer ferramenta, ela pode não ser a melhor opção para todas as situações. Entraremos em mais detalhes sobre essas desvantagens posteriormente Mas, por enquanto, vamos dar uma olhada em alguns dos desafios. Uma desvantagem potencial é que as polars são relativamente novas em comparação com bibliotecas mais estabelecidas, como a bibliotecas mais estabelecidas, como Como ainda está crescendo, pode haver menos recursos disponíveis, como tutoriais, suporte comunitário ou documentação, que pode dificultar o início dos iniciantes Além disso, como é novo, pode haver menos exemplos de como as empresas o estão usando em projetos reais de grande escala. Como o polars ainda não é tão amplamente adotado, há informações limitadas sobre quantas empresas o estão usando no ambiente de produção, os sistemas do mundo real que as empresas administram suas operações A maioria das empresas que usam polares pode não compartilhar publicamente detalhes sobre como elas se encaixam em seus fluxos de trabalho Portanto, é mais difícil saber o quão bem ele funciona em cargas de trabalho muito grandes ou complexas No entanto, algumas empresas estão começando a usar polares para suas tarefas de processamento de dados, e você pode ver exemplos disso no setor À medida que a biblioteca amadurece, sua adoção provavelmente crescerá e mais empresas começarão a compartilhar suas experiências Então, vamos começar. 3. Instalando polares, carregando DataFrames e acessando colunas de forma eficiente: Aqui está o comando para instalar a biblioteca. Vamos começar. abrir meu terminal, pois estou acostumado a trabalhar com ele. Primeiro, vou ativar meu ambiente virtual. Se você não está familiarizado com ambientes virtuais, recomendo fortemente que confira meu vídeo sobre como gerenciar ambientes virtuais e como eles podem facilitar sua vida. Mas se você não sabe o que é um ambiente virtual, pode executar o comando diretamente no terminal. No momento, saber trabalhar com ambiente virtual não é prioridade. Depois de ativar meu ambiente, posso executar meu notebook Jupiter diretamente do terminal executando o comando Se você usa o Anaconda depois de iniciar o Jupiter Notebook, você pode instalar essa biblioteca diretamente dentro do Jupiter executando Como você pode ver, eu já tenho a biblioteca instalada, então podemos começar a trabalhar. Primeiro, importarei todas as bibliotecas necessárias com as quais trabalharemos. Estou importando a biblioteca Numbi porque precisaremos dela. Para quem não está familiarizado com isso, o Nampi é uma poderosa biblioteca Python usada para No meu perfil, você pode encontrar um tutorial nesta biblioteca. Em seguida, vou verificar a versão dos polares. Eu baixei um enorme conjunto de dados com mais de 1 gigabyte de tamanho e agora vou importá-lo usando a função Ler CSV Demora um pouco para carregar e, usando a função shape, que você pode ter ouvido do Pandas, podemos verificar as dimensões do nosso conjunto de Se você não estiver familiarizado com isso, a função de forma e os polares retornarão o dobro que representa o número de linhas e colunas no quadro de dados Essa função é útil para entender rapidamente o tamanho do seu conjunto de E aqui podemos ver que o conjunto de dados contém mais de 130 milhões de linhas Outra função útil para entender rapidamente um quadro de dados sem carregar todos os dados na função principal. Por padrão, ele exibe as primeiras cinco linhas. Como podemos ver, a aparência do quadro de dados em polares é um pouco diferente do que observamos ao carregar dados com o Pandas A primeira diferença perceptível nas informações do tipo de dados exibidas para cada coluna. Usando as duas funções Pandas em polares, podemos converter o quadro de dados Polars em quadro de dados Isso é particularmente útil quando você precisa aproveitar a funcionalidade específica do Panda ou integrar-se bibliotecas que suportam apenas os dataframes do Panda O método dos dois Pandas garante uma transição suave entre polares e Pandas, permitindo que você aproveite as duas bibliotecas no mesmo fluxo de as duas bibliotecas no mesmo fluxo Se você não quiser baixar grandes conjuntos de dados em seu computador, você pode usar conjuntos de dados disponíveis publicamente no Github Para fazer isso, encontre um grande conjunto de dados no GitHub. Vá até a banheira de fileira e copie o link direto. Use as leituras conforme funcionamos em polares para carregá-las. Como antes, leva um pouco de tempo para ser processado. Mas, eventualmente, podemos ver os dados. exemplo de hoje, estamos trabalhando com o conjunto de dados criminais de Chicago para 2022. Também podemos verificar os tipos de coluna e ver que ela contém 2.525.551 linhas, bastante grandes, bastante grandes Para evitar confusão com o primeiro quadro de dados que carregamos anteriormente, renomearei esse novo quadro de dados Ainda usarei o primeiro quadro de dados posteriormente, mas, por enquanto, trabalharemos com esse segundo, que foi carregado do Github Vou recarregar todas as células, assim como em Pandas Em polares, uma série é uma estrutura semelhante a uma matriz unidimensional que representa uma única coluna de um quadro de dados Ele pode conter tipos de dados homogêneos, como números inteiros, flutuantes, cadeias de caracteres e flutuantes As séries são os blocos de construção de quadros de dados e polares. Eles nos permitem realizar várias operações de manipulação e análise de dados, como filtragem, transformação e Cada série tem um nome e um tipo de dados associados, facilitando a referência dentro do quadro de dados. Podemos extrair uma série de um quadro de dados de várias maneiras. O primeiro usando o nome da coluna. A forma mais simples é acessar a coluna pelo nome Para evitar o carregamento da série inteira em grandes conjuntos de dados, usarei a função head para exibir somente as primeiras quatro linhas O segundo usando a função de coluna GAD. Essa abordagem tem vantagens de desempenho e flexibilidade em relação ao acesso direto à coluna. Para mim, o principal motivo para usar a função Get column é o tratamento de erros. Se você tentar recuperar uma coluna inexistente, extratores gerarão imediatamente um erro. Isso fornece feedback instantâneo se houver um erro de digitação no nome da coluna Por outro lado, acessar uma coluna pelo nome pode retornar silenciosamente um não ou gerar um erro de chave, que pode dificultar a depuração A terceira forma é o método de seleção. Ele cria um novo quadro de dados contendo somente a coluna especificada. No entanto, mesmo que contenha apenas uma coluna, o resultado ainda é um quadro de dados. Para trabalhar diretamente com uma série, precisamos convertê-la usando a função de duas séries. O método select em polars retorna um novo quadro de dados, mesmo se estivermos selecionando apenas uma única coluna Isso significa que, se eu criar uma variável e atribuir esse resultado a ela, não será apenas uma única coluna, mas o quadro de dados polares contendo uma coluna Então, se eu verificar o tipo D de um, também removo o método de duas séries. Isso pode resultar em um erro. Como o tipo D, normalmente é um atributo de série, não um quadro de dados. E aqui estamos, temos um erro. Se eu usar novamente o método de duas séries, já que uma não é mais um quadro de dados, série polar corporal e atributo do tipo D retornarão o tipo de dados da coluna do distrito. Vamos imprimi-lo. No primeiro caso, podemos ver essa impressão como uma, deslocando o valor da coluna do distrito como uma série Aqui podemos ver a forma, o tipo de dados e os valores. O segundo caso desloca a coluna do distrito dentro do formato do quadro de dados, mostrando o nome da coluna e seus dados 4. Manipulação de dados em polares: operações aritméticas, gerenciamento de colunas e técnicas de filtragem: Em polares, podemos realizar operações aritméticas em séries ou colunas usando operações padrão Por exemplo, podemos usar adição. Se quisermos adicionar dez a uma série, podemos ver que cada número na série resultante aumentou exatamente dez em comparação com o número na série original. Aqui eu imprimo a série original e podemos ver o resultado. O valor da idade aumenta em dez. Multiplicação. Multiplicar uma série por dois dobra cada valor. Aqui eu comparo com a série original e podemos ver que cada valor é dobrado Subtrair 20 diminui cada valor em 20. Vamos continuar com os métodos de agregação. Os polares fornecem métodos integrados para agregações, como O método de soma em polares é usado para calcular a soma de todos os elementos em uma série ou coluna em um quadro de dados Quando aplicado a uma coluna contendo valores inteiros, ele retorna à soma total desses valores O método médio em polares calcula a média de todos os elementos em série ou coluna Em nosso exemplo, ele calcula a média aritmética de todos os valores inteiros Também podemos usar operadores de comparação em polares para criar séries booleanas Em polares, os operadores de comparação permitem comparar valores em uma coluna com outros valores, e o resultado é uma série booleana Uma série booleana é uma sequência de valores verdadeiros ou falsos, que você pode usar para filtrar, analisar ou manipular seus Veja como os separadores funcionam. Nesse caso, criamos uma nova série contendo valores booleanos A operação compara cada valor na coluna com 20 e retorna uma série do mesmo tamanho na coluna original que cada elemento é verdadeiro ou falso Também em polares, podemos usar o método maior que. Na primeira vez, ele retornou apenas falso, então alterei o valor de comparação para 30. Esse método é usado para comparar uma coluna com um valor específico, semelhante ao uso do operador maior que que usamos anteriormente. O método greater than é uma função embutida que executa, sim, a mesma operação, mas permite mais flexibilidade. Ela pode ser útil ao trabalhar com métodos que exigem chamadas de função em vez de operadores. Em alguns casos, pode ser preferível usar o encadeamento de métodos ou trabalhar com expressões personalizadas em uma consulta Portanto, o primeiro caso que podemos usar ao verificar valores em um quadro de dados. O método maior que o usado no segundo caso, podemos usar quando precisamos de processamento baseado em funções, como encadeamento de métodos ou compatibilidade com determinadas estruturas de consulta Na maioria dos casos, as duas abordagens alcançam o mesmo resultado. Isso é útil para filtrar ou analisar dados que você deseja se concentrar em valores que atendam a uma condição específica, como encontrar registros com vendas maiores do que uma determinada meta Eu, entre esse operador, verifica se um valor está dentro de um intervalo específico de números. Por exemplo, usar is 20-30 retornará true para todos os valores Na coluna que está entre dez e TG, incluindo dez e TJ e quedas Para aqueles que estão fora dessa faixa, isso é particularmente útil quando você precisa filtrar dados ou criar condições que verifiquem se os valores estão dentro de uma faixa específica, como 18 a 65 anos ou preços de $10 Em polares, adicionar uma nova coluna a um quadro de dados é feito usando o método with columns É importante saber que quadro de dados polares é imutável, o que significa que o quadro de dados original não muda quando você adiciona uma Em vez disso, esse método cria e retorna um novo quadro de dados com uma nova coluna adicionada, deixando o quadro de dados original inalterado Então, usamos com o método de colunas. Ele diz aos polares que adicionem novas colunas ao nosso quadro de dados. Para adicionar um valor constante a uma nova coluna, usamos a função lead. Essa função cria um valor literal ou fixo que será atribuído a cada linha na nova coluna Por exemplo, se usarmos t um, significa que cada linha na nova coluna terá o valor um. Depois de criar uma nova coluna, você pode dar um nome a ela usando AS. No nosso caso, eu a chamo de nova coluna. É assim que você especifica a nova coluna será chamada no quadro de dados. Depois de executar essas etapas, criamos um novo quadro de dados com base no quadro de dados dois com uma nova coluna chamada nova coluna adicionada A nova coluna contém o valor um para todas as linhas. E, como esperado, o quadro de dados original permanece inalterado Se você quiser excluir uma coluna de um quadro de dados, você pode usar esse método drop. Esse método permite remover uma coluna fornecendo seu nome como argumento. Você só precisa informar aos polares qual coluna você deseja remover especificando o nome da coluna É importante saber que quadros de dados polares são imutáveis, o que significa que o método drop não modifica diretamente o quadro de dados original Em vez disso, ele cria um novo quadro de dados com a coluna removida. Isso é feito para garantir que os dados originais permaneçam inalterados Como o quadro de dados original não muda, se você quiser manter o quadro de dados modificado, aquele sem a coluna descartada, necessário reatribuir o resultado à variável original ou armazená-lo em uma nova variável Sem fazer isso, o quadro de dados original permanecerá inalterado Agora vamos filtrar uma série polar com base em determinadas condições Por exemplo, aqui estamos filtrando para manter somente os números pares A condição verifica os números pares, e o método de filtro mantém somente os elementos em que a condição é avaliada como verdadeira Isso é muito útil, pois você pode ajustar a condição e assinar o filtro para filtrar a série com base em critérios diferentes. Por exemplo, filtrei todos os valores maiores que 20. Se eu mudar para 30, a condição fica mais clara. Deixe-me atualizar isso rapidamente e reiniciar a célula para o próximo exemplo. Agora, vamos criar duas séries. Provavelmente, é melhor usar apenas séries de nomes. Eu removi o operador de impressão porque o notebook Jupiter o renderiza muito bem E a segunda série é um pouco diferente da primeira. Agora vamos concatená-los. Ao trabalhar com extratores, a concatenação das séries depende do tipo de Se você concatenar duas séries do tipo string usando o operador plus, a operação executará a concatenação elemento a elemento das concatenação elemento a elemento Isso significa que cada elemento na primeira série está concatenado com o elemento correspondente na Como as duas séries são do tipo string, o operador plus concatena as strings No entanto, quando séries de tipos diferentes estão envolvidas, polares automaticamente custarão a série para um tipo de dados compatível antes de realizar a operação Aqui, polars converte automaticamente os números inteiros em strings antes de realizar a concatenação Se você concatenar duas séries do tipo inteiro usando o operador de adição, a operação executará a adição desses números inteiros por elemento, operação executará a adição desses números inteiros por elemento não a concatenação de Como resultado, a série conterá números inteiros somados. 5. Dominando DataFrames em Polars: slicing, estatística descritiva e metodologia avançada de exploração de dados: Vamos analisar rapidamente como acessar linhas e polares. Em polars, você pode acessar linhas usando indexação e fatiamento, mesma forma que funciona em outras bibliotecas de manipulação de dados, como outras bibliotecas de manipulação de dados No entanto, existem algumas diferenças importantes na forma como os polares lidam com as linhas devido à sua estrutura de dados colunar Você pode acessar linhas usando indexação, mas polars retorna um novo quadro de dados em vez de um objeto de linha única Quando você acessa uma linha específica usando um índice, polars a retorna como um novo quadro de dados em vez de uma única tupla ou objeto de linha individual Isso é diferente do Pandas, em que acessar a linha retorna um objeto unidimensional em série Como os polares são otimizados para trabalhar com colunas em vez de linhas, esse comportamento garante que os dados permaneçam consistentes e eficientes ao realizar operações Você também pode extrair várias linhas usando a notação de fatias, que funciona de forma semelhante à forma como você divide listas ou raios em Python Isso permite que você recupere um intervalo de linhas de forma eficiente sem alterar a estrutura do quadro de dados Ao contrário dos Pandas, os polars não usam um índice de linha explícito. Em vez disso, as linhas são identificadas por sua posição, tornando-as mais eficientes ao trabalhar com grandes conjuntos de dados. Essa abordagem colunar ajuda os polares a realizar operações de dados com muito mais rapidez do que os métodos tradicionais de indexação baseados em funções O método descrito em polars é uma ferramenta poderosa usada para gerar estatísticas descritivas para um quadro de dados A estatística descritiva ajuda você a resumir e entender os principais recursos de seus dados, permitindo que você obtenha rapidamente uma visão geral de suas Aqui podemos ver o que o método descrito fornece. A contagem mostra o número de valores não nulos em cada coluna. Ele ajuda você a entender quantos dados estão disponíveis para cada variável e se há algum valor ausente. A média ou média de cada coluna numérica dá uma ideia da tendência central dos dados Qual valor é o mais comum para essa coluna? O desvio padrão indica como os dados estão distribuídos em torno da média Um pequeno desvio padrão significa que os valores estão próximos da média, enquanto um grande desvio padrão significa que os valores estão mais dispersos Dependendo dos dados, os pesquisadores também podem fornecer outras estatísticas, o que fornece mais informações sobre a distribuição dos valores em cada coluna O método descrito é ótimo para obter rapidamente informações sobre seus dados. Ele ajuda você a identificar padrões e entender o comportamento geral dos dados, detectar valores discrepantes ou valores que geralmente estão longe da média, ter uma ideia de quanta variação existe no conjunto de dados, o que pode ajudar na tomada de decisões sobre como limpar ou processar mais os O método de tamanho estimado em polares é usado para estimar a quantidade de memória um quadro de dados usará em seu sistema Ele fornece um tamanho aproximado do quadro de dados, para que você possa entender quanto espaço ele está ocupando na sua memória Quando você chama o tamanho estimado em um quadro de dados, ele calcula o uso de memória do quadro de dados em megabytes Isso é útil quando você trabalha com grandes conjuntos de dados e deseja garantir que seu sistema tenha memória suficiente para processá-los com eficiência. Em vez de carregar todo o quadro de dados e ver quanto espaço ele usa na memória, o que pode ser lento ou ineficiente, você pode obter uma estimativa rápida O método duplicado em polares é usado para identificar linhas duplicadas em um quadro de dados com base em Ele retorna tabela e série, indicando se cada linha é uma duplicata de uma linha anterior Para obter somente as linhas duplicadas, podemos filtrar os dados Isso removerá todas as linhas não duplicadas, deixando somente as duplicatas no quadro de dados resultante Como podemos ver, não há duplicatas nesse caso. Esses métodos vazios e polares são usados para verificar se um quadro de dados contém dados ou não Essencialmente, ele ajuda a determinar se o quadro de dados está vazio, o que significa que ele não tem linhas ou dados dentro dele. Por exemplo, você pode ter um quadro de dados com nomes de colunas, mas sem dados nas linhas. Isso seria considerado vazio. Quando você usa o método is empty, ele verifica se o quadro de dados tem alguma linha. Se o quadro de dados não tiver linhas, ele retornará verdadeiro, indicando que o quadro de dados está vazio. Se o quadro de dados tiver uma ou mais linhas, ele retornará falso, o que significa que o quadro de dados não está vazio. Esse método é especialmente útil em situações em que talvez você queira realizar algumas operações em um quadro de dados, mas somente se ele contiver dados. Por exemplo, antes de realizar um cálculo complexo ou uma transformação de dados, talvez você queira garantir que o quadro de dados realmente tenha dados com os quais trabalhar. Isso pode evitar erros ou cálculos desnecessários em um conjunto de dados vazio Esse método exclusivo em polares é usado para verificar se os valores em uma coluna específica são exclusivos Quando você chama o método is unique em uma coluna em um quadro de dados polars, ele verifica se todos os valores nessa coluna são exclusivos O método retornará verdadeiro se cada valor na coluna for exclusivo e cairá se algum valor for repetido. Ele ajuda na limpeza ou validação de dados antes de realizar tarefas como análise, mesclagem de conjuntos de dados ou criação de índices Aqui, usei o filtro novamente para obter valores exclusivos em vez de justos ou falsos. As portas também fornecem um método exclusivo, que conta o número de valores exclusivos em uma série ou quadro de dados. Ele retorna um número inteiro representando a contagem de valores exclusivos Quando aplicado a uma coluna, and unique retorna a contagem total de valores distintos dessa coluna. Se usado em um quadro de dados , normalmente conta valores exclusivos para cada coluna separadamente. E um método exclusivo é útil ao analisar dados para entender sua diversidade ou distribuição. Ele pode ser usado para detectar valores duplicados. Por exemplo, verificar quantos IDs de clientes, nomes de produtos ou e-mails de usuários diferentes existem em um conjunto de dados. Isso ajuda na validação de dados, garantindo que uma coluna destinada a ter valores exclusivos não contenha duplicatas inesperadas O método de contagem nula e os polares são usados para contar o número de valores ausentes em uma coluna ou em um quadro de dados inteiro Quando aplicado a uma coluna, ele retorna o número total de valores nulos nessa coluna Se eu usá-lo em um quadro de dados, ele normalmente conta valores nulos para cada coluna separadamente. Valores ausentes podem causar problemas nos cálculos. Portanto, saber quantos valores nulos existem ajuda a decidir como lidar com eles. Se uma coluna que sempre deveria ter dados tiver valores nulos, isso poderá indicar erros de entrada de dados Muitos modelos de aprendizado de máquina não conseguem lidar diretamente com dados perdidos. Portanto, contar valores nulos é a primeira etapa para decidir como preenchê-los ou removê-los O método count em polars é usado para contar o número de valores não nulos em uma coluna ou em um quadro de dados inteiro Ele ajuda você a determinar rapidamente quantos valores reais não faltantes existem em seu conjunto de dados. Quando eu aplico esse método à coluna, ele retorna o número total de valores não nulos nessa coluna Se eu usá-lo em um quadro de dados, ele normalmente conta os valores não nulos para cada coluna separadamente. Isso ajuda a determinar a quantidade de dados utilizáveis disponíveis em cada coluna Ao comparar valores nulos de contagem com um número total de linhas, você pode ver quantos valores faltam. Muitas etapas de processamento de dados exigem valores não nulos. Portanto, saber quantas entradas válidas estão presentes ajuda na limpeza e no processamento de dados. O método horizontal médio em polares é usado para calcular os valores médios ou médios linhas horizontais de um quadro de dados Ele calcula a média de cada linha individualmente, tratando cada linha como uma sequência separada de valores Esse método é útil para resumir dados e obter informações sobre a distribuição e as características dos valores em um conjunto Para encontrar os valores mínimos ou máximos em um quadro de dados, você pode usar métodos como média e A função média retorna com o valor mínimo em todas as colunas numéricas no quadro de dados A função max obtém os valores máximos em todas as colunas numéricas Essas funções funcionam não apenas com dados numéricos, mas também com outros tipos de dados, como cadeias de caracteres ou datas. A função de produto em polares é usada para calcular o produto de todos os valores em uma coluna ou série ou várias colunas em um quadro de dados Isso significa que ele multiplica todos os valores e retorna o resultado Quando aplicado a uma coluna, ele retorna um único número representando o produto de todos os valores dessa coluna. Para o quadro de dados, ele calcula o produto para cada coluna numérica separadamente É muito útil para cálculos matemáticos, análises financeiras e validação de dados. Se você quiser estimar a dispersão ou o desvio quadrado dos valores de sua média em cada coluna numérica, você pode usar a Ele mede o quanto, em média, os valores em uma coluna se desviam da média É comumente usado em análises estatísticas para entender a distribuição e a variabilidade dos dados A função SDD calcula o desvio padrão dos valores em cada coluna de um quadro de dados Essa função retorna uma série contendo o desvio padrão para cada coluna Um desvio padrão baixo significa que os valores estão próximos da média, enquanto um desvio padrão alto indica que os valores estão espalhados por uma ampla faixa 6. Explorando os métodos de DataFrame do Polars: bandeiras, esquema, operações de colunas e técnicas de conversão de dados: A função flag e polars retornam um dicionário de sinalizadores para cada coluna no quadro de dados Cada sinalizador recebe um valor booleano indicando se o sinalizador está definido para aquela coluna ou não Por exemplo, vejo sinalizadores ordenados aqui, mas se eu quiser verificar se uma coluna é exclusiva, posso usar essa função exclusiva Essa função exclusiva retorna um valor booleano. Verdadeiro se todos os valores nas colunas especificadas forem exclusivos, sem duplicatas e falso se houver valores duplicados. E aqui eu verifico se a coluna distinta no meu quadro de dados contém apenas valores exclusivos ou não. No primeiro caso, verifiquei a presença de valores exclusivos na coluna, se eles existem. E então descobrimos se a coluna consiste inteiramente em valores exclusivos. E, como podemos ver, não há valores exclusivos e a coluna não está marcada com a bandeira exclusiva. Para recuperar a lista de nomes de colunas no quadro de dados, você pode usar o método columns Ele retorna uma lista de strings em que cada string é o nome da coluna Isso é útil para verificar rapidamente a estrutura do quadro de dados e entender quais colunas estão disponíveis para análise ou processamento. O esquema de um quadro de dados se refere à sua estrutura, especificamente aos nomes das colunas e seus tipos de dados No entendimento dos polares, o esquema é importante porque ajuda você a saber que tipo de dados você está trabalhando O esquema inclui os nomes de todas as colunas no quadro de dados e isso ajuda você a ver rapidamente quais dados estão disponíveis Cada coluna no quadro de dados tem um tipo de dados, e conhecer os tipos de dados também é importante porque algumas operações só funcionam em tipos específicos de dados. Portanto, o esquema ajuda a verificar se os dados estão no formato correto antes de realizar as operações Algumas operações podem falhar se os tipos de dados estiverem incorretos. Portanto, verificar o esquema com antecedência pode evitar erros. O método de largura em polares é usado para descobrir quantas colunas são apresentadas em um quadro de dados Isso é útil ao trabalhar com grandes conjuntos de dados. Onde a contagem manual de colunas é impraticável. Isso ajuda a verificar rapidamente quantos campos de dados diferentes existem no seu conjunto de dados. Também pode ajudar ao trabalhar com conjuntos de dados dinâmicos. Saber o número de colunas pode ajudar em tarefas como percorrer colunas ou selecionar colunas específicas O método glimpse em polars é usado para visualizar um resumo do seu quadro de dados, oferecendo uma visão rápida da estrutura de É útil quando você quer entender o layout geral dos seus dados sem precisar exibir o conjunto de dados inteiro, especialmente ao trabalhar com grandes conjuntos O método Glimse fornece uma visão geral compacta do quadro de dados, incluindo nomes de colunas, tipos de dados de cada coluna uma prévia dos primeiros valores em cada Esse método não mostra o conjunto de dados inteiro, mas oferece um instantâneo rápido, para que você possa entender a estrutura de dados Isso ajuda a verificar rapidamente quais dados estão disponíveis, quais são as colunas e os tipos de dados com os quais você está trabalhando sem exibir tudo. Também ajuda a evitar a sobrecarga com grandes quantidades de dados, mostrando apenas uma pequena parte resumida Você também pode identificar possíveis problemas como tipos de dados inesperados, valores ausentes ou inconsistências nos nomes das colunas durante essa análise rápida O método N chunks em polares é usado para descobrir quantos blocos um quadro de dados Em polares, os dados podem ser divididos em partes para um processamento mais eficiente, especialmente ao trabalhar com grandes conjuntos de dados que não cabem na memória Um pedaço é uma parte menor de todo o quadro de dados. Polars geralmente divide grandes conjuntos em partes para lidar com eles com mais eficiência Cada bloco pode ser processado separadamente, permitindo que os polares trabalhem com conjuntos muito grandes para caber inteiramente na memória Isso faz parte do eficiente sistema de gerenciamento de memória da Polar . Quando você usa o método N chunks, ele retorna o número de blocos em que nosso quadro de dados foi dividido Isso pode ser útil para entender como a polars está gerenciando a distribuição de memória e dados para seu quadro de dados específico Em alguns casos, entender a fragmentação dos dados ajuda a monitorar e depurar como polars está lidando com os dados Se um quadro de dados tiver um grande número de blocos, as operações podem ser menos eficientes em comparação com quando os dados são armazenados em um único bloco Compreender os fragmentos é fundamental ao trabalhar com grandes A função de duas setas e polares é usada para converter um quadro de dados polares em uma tabela de setas Pache Isso é útil para interoperabilidade de dados porque o apache arrow é formato amplamente usado para troca eficiente de dados entre diferentes sistemas de processamento de dados O Apache arrow é um formato de memória colunar projetado para processamento rápido de dados Ele permite que diferentes ferramentas de processamento de dados como Pandas ou Spark compartilhem dados com eficiência sem precisar copiá-los ou convertê-los várias vezes Quando você usa a função de duas setas, Poller's transforma seu formato de dados interno em uma tabela de setas de patch, mantendo a estrutura colunar Ele ajuda no compartilhamento de dados mais rápido, uso eficiente da memória e na melhor compatibilidade. Polars também fornece a função de dois DigT, que converte um quadro de dados ou uma série em um dicionário Python Cada coluna no quadro de dados se torna uma chave no dicionário com os valores correspondentes, formando uma lista para essa chave. Também temos o método de dois dictos. Em polares, ele converte um quadro de dados em uma lista de Muitas funções e bibliotecas do Python funcionam bem com listas de Por exemplo, se você precisar converter seus dados no formato JSON, essa pode ser uma etapa intermediária útil, pois lista de dicionários é facilmente serializável Se, por algum motivo, você precisar uma representação de string do quadro de dados, poderá usar o método de representação de dois N. Isso é particularmente útil para depuração ou para cenários em que você precisa gerar código que possa reproduzir esse quadro de dados exatamente como está Também pode usar dois métodos Napi, que convertem o quadro de dados polars Isso é útil quando você precisa aproveitar as poderosas funções matemáticas e de manipulação de matrizes do Napi matemáticas e Como as matrizes Napi são altamente eficientes para cálculos numéricos, esse método é benéfico ao realizar operações que são melhor manipuladas pelo Nam Pi altamente eficientes para cálculos numéricos, esse método é benéfico ao realizar operações que são melhor manipuladas O mesmo posso dizer sobre o método dos dois Pandas. Ele converte o quadro de dados polars no quadro de dados do Panda. Isso é útil quando você deseja usar a funcionalidade específica do Pandas ou ao trabalhar em um ecossistema em que Pandas é a principal ferramenta de manipulação de dados O método two torch converte quadro de dados polar em um tensor Pytorch Isso é ideal para preparar dados para modelos de aprendizado profundo no PyTorch No entanto, como não tenho essa biblioteca instalada, encontro um erro. Podemos instalar essa biblioteca com esse comando, mas no momento não precisamos dela, então deixo como está. 7. Manipulação avançada de dados no Polars: agrupamento, agregação, classificação e transformação personalizada: Agora vamos continuar com o método do grupo B. Se você já trabalhou com Pandas antes, provavelmente está familiarizado com esse método Se não, aqui está uma explicação rápida. O método do grupo B em polares é usado para agrupar um quadro de dados por uma ou mais colunas No nosso caso, o agrupamento pela coluna do ano significa que todas as linhas com o mesmo valor na coluna do ano serão agrupadas Cada ano único formará um grupo separado. No entanto, no nosso caso, temos apenas um ano de 2022. Em seguida, usamos a agregação. O método e os polares são usados para realizar cálculos agregados em grupos de dados em um quadro de dados Em seguida, especificamos a coluna, bit e aplicamos a função de contagem. Isso significa que, para cada grupo, contamos o número de ocorrências da coluna de bits Essencialmente, isso conta o número de linhas em cada grupo, pois cada linha representa um incidente. Em seguida, usamos a função Alias. Para renomear a coluna resultante da agregação para contar Isso é feito para dar à coluna agregada um nome significativo Em teoria, podemos usar essa função para resumir dados e entender a frequência de incidentes por ano No entanto, como temos apenas um ano em nosso conjunto de dados, vemos apenas a contagem de incidentes de 2022 Agora, vamos considerar outro exemplo quando eu agrupo por ano. Mas em vez de usar uma função de agregação, eu uso o método L. O método OL retém todas as linhas em cada grupo. A separação é útil quando você precisa trabalhar com todos os pontos de dados em cada grupo sem realizar nenhuma agregação ou transformação que reduza Em alguns casos, quando quiser obter uma visão geral rápida de cada grupo, você pode usar o primeiro método em vez de todos. Isso é útil quando você deseja extrair pontos de dados de amostra de cada grupo ou reduzir o quadro de dados para uma linha por grupo para análises ou relatórios adicionais. Não tenho o melhor exemplo para isso, então vamos agrupar por tipo primário. Isso deixa tudo mais claro. Aqui podemos ver a primeira linha de cada grupo. No nosso caso, a coluna do tipo primário. O último método funciona quase da mesma forma , exceto que retorna somente a última linha de cada grupo. Agora eu quero definir uma função personalizada para calcular a porcentagem de prisão. Primeiro, obtenho o número total de casos calculando o comprimento do quadro de dados Então eu obtenho o número de casos de prisão somando a coluna de prisão Em seguida, calculo a porcentagem de prisão dividindo o número de prisões pelo número total de casos Finalmente, eu devolvo o quadro de dados com o resultado. Esse código agrupa os dados por tipo primário e calcula a porcentagem de prisão para cada tipo de crime A partir do resultado, podemos ver quais tipos de crimes têm taxas de prisão maiores ou menores. Agora que criamos essa função, é hora de usá-la. Um método muito útil para isso são os grupos nab. Esse método usa os dados agrupados como entrada, aplica a função personalizada a cada grupo e retorna um novo quadro de dados com o resultado dessa operação Nesse caso, agrupamos o quadro de dados pela coluna de tipo primário e, em seguida, aplicamos nossa função personalizada de porcentagem de prisão a cada grupo. Essa função processa cada grupo de forma independente e pode executar qualquer lógica personalizada necessária. O resultado é um novo quadro de dados em que cada linha contém o resultado da aplicação da função de porcentagem de prisão a cada grupo. Há também uma função de aplicação, que aplica uma função personalizada ou definida pelo usuário em um grupo por contexto, mas ela foi descontinuada e renomeada Portanto, se você ver a função apply em código antigo, não se confunda. É apenas uma versão desatualizada. Você provavelmente está familiarizado com a função head, que permite ver as primeiras linhas de um quadro de dados. No entanto, vamos considerar outra função útil, a cauda. Digamos que eu queira ver somente as últimas linhas de cada grupo. Usar o método tail em um grupo nos permite focar nas entradas mais recentes ou nas últimas de cada categoria. Isso pode ser útil para examinar os casos mais recentes em nosso conjunto Nesse caso, gramas, mas em outros casos, pode ser qualquer tipo de dado. Você também pode usar a função de classificação depois de aplicar essas operações. Ele permite que você classifique as entradas extraídas por uma coluna específica, por exemplo, área da comunidade para melhor legibilidade ou análise posterior Então, o que fizemos aqui? Nós agrupamos por tipo primário. Selecionamos a última linha para cada grupo e classificamos os dados por área da comunidade A sequência de operações ajuda a analisar entradas mais recentes e, ao mesmo tempo, melhora a legibilidade 8. Operações avançadas de dados no Polars: write_csv, tabelas dinâmicas e estratégias de junção: Para o próximo exemplo, preciso de dois quadros de dados. Unir quadros de dados é uma operação comum na manipulação de dados em que linhas de dois ou mais quadros de dados são combinadas com base em colunas comuns Polars fornece vários tipos de junções, semelhantes às junções no estilo SQL Vamos imprimir os dois quadros de dados e começar com a junção interna. Eu pego meu primeiro quadro de dados e uso a função de junção. Em seguida, especifico o segundo quadro de dados que desejo unir ao primeiro. Em seguida, defino a coluna a ser unida. Isso pode ser um nome de coluna única ou uma lista de nomes de colunas. No meu caso, é nome. Por fim, especifico o tipo de junção, que no nosso caso é uma junção interna. Desculpe pelo erro de digitação. Isso significa que somente as linhas com chaves correspondentes nos dois quadros de dados aparecerão no resultado. Vemos que Bob e Charlie estão presentes nos dois quadros de dados, então os vemos em nosso resultado. Agora vamos tentar uma junção à esquerda. Isso significa que todas as linhas do quadro de dados esquerdo e somente as linhas correspondentes do quadro de dados direito estarão no resultado. E podemos ver que todos os nomes e todas as informações do quadro de dados esquerdo apareceram em nosso resultado e do quadro de dados direito, no nosso caso, o segundo quadro de dados. Podemos ver apenas dois nomes, Bob e Charlie, que estão presentes nos dois quadros de dados. Para um desenho completo, todas as linhas dos dois quadros de dados aparecerão no resultado sem valores onde não haja correspondências. E aqui podemos ver os nulos no resultado. Também temos junção cruzada. Ele retorna todas as combinações possíveis de linhas de ambos os quadros de dados, um produto cartesiano Cada linha da esquerda é combinada com cada linha da direita. E para mostrar todos os tipos de junções, quero explicar que você também é semi Ele retorna somente as linhas do quadro de dados esquerdo que têm chaves correspondentes no quadro de dados direito. Você pode me perguntar qual a diferença entre junção interna e semijunção Temos quase o mesmo. Tanto a junção interna quanto semijunção retornam linhas em há uma correspondência entre duas tabelas, mas elas têm uma diferença fundamental junção interna retorna todas as linhas correspondentes de ambas as tabelas, incluindo as colunas de ambas. Semijoin retorna somente as linhas da tabela esquerda que têm correspondência na tabela direita, mas não inclui colunas da tabela direita Portanto, embora possam retornar o mesmo número de linhas, a junção interna inclui colunas adicionais da tabela direita, enquanto a semijunção mantém somente as colunas originais da tabela esquerda E temos antídova. É um tipo de operação de junção em as linhas do quadro de dados esquerdo são incluídas no resultado somente se não houver uma chave correspondente no quadro de dados direito. Essencialmente, ele filtra todas as linhas do conjunto de dados esquerdo que tenham uma correspondência correspondente no conjunto de dados direito com base na chave ou coluna especificada Se você notou, eu costumo usar o Tap para evitar digitar manualmente as variáveis existentes repetidamente Pressione a tecla superior e o notebook Dutra sugerirá a variável para seleção em vez da entrada manual Vamos continuar com as tabelas dinâmicas. Para isso, vou alterar um pouco meu quadro de dados. Se você já trabalhou com Pandas antes, provavelmente sabe o que é Caso contrário, as operações dinâmicas permitem remodelar seus dados resumindo-os de maneiras diferentes, com base em uma Aqui, mostrarei como remodelar meu quadro de dados criado recentemente Eu especifico os valores a serem dinâmicos e, no meu caso, será a coluna de pontuação Em seguida, especifico que as linhas da nova tabela dinâmica serão indexadas pela Também usarei a coluna Cidade, que servirá base para a nova coluna da tabela dinâmica. Para a função de agregação, usarei primeiro. Isso significa que, se houver vários valores para uma combinação específica de nome e cidade, somente o primeiro valor será usado. O quadro de dados resultante terá valores de nome exclusivos como as linhas do índice e valores exclusivos da cidade nas colunas. Valores nulos na tabela dinâmica indicam que não havia combinações correspondentes de nome e cidade no quadro de dados original para Apesar de termos dois bobs, só obtemos o primeiro com uma pontuação de 90 Em seguida, alterarei a função de agregação para soma. E agora obtemos a soma das pontuações dos dois bobs, dois Charli's e assim por diante Eu adiciono uma linha abaixo nosso quadro de dados para mostrar os resultados atualizados. E, claro, a soma é 160. Podemos ver que o primeiro bob tem uma pontuação de 90. O segundo bob tem uma pontuação de 70. O mesmo se aplica a Frank e aos outros nomes. A função média mostra o valor médio quadrado para cada combinação de nome e cidade. A função max mostra o valor máximo da pontuação. Também podemos calcular os valores médios ou medianos da pontuação. Nesse caso, não vemos diferença entre a mediana e a média porque nosso quadro de dados não é o melhor exemplo, mas eles representam aspectos diferentes da distribuição de dados A média representa o valor médio do conjunto de dados e é adequada para dados distribuídos simetricamente sem A mediana, por outro lado, é o valor médio de um conjunto de quando ele é ordenado do menor para o maior A mediana é mais adequada para dados distorcidos ou não distribuídos normalmente Para o próximo exemplo, preciso de dois quadros de dados diferentes. Vou copiar o primeiro e fazer algumas alterações. Em extratores, podemos comparar dois quadros de dados para verificar se eles são iguais Podemos verificar se os dois quadros de dados correspondem exatamente. Se os dois quadros de dados tiverem o mesmo esquema, que significa os mesmos nomes de coluna e tipos de dados, bem como os mesmos dados em cada coluna correspondente na linha, a comparação retornará bull e value true, que indica que os dois quadros de dados são idênticos em termos de esquema e Ou falso se houver alguma diferença no esquema ou nos dados entre esses dois quadros de dados No primeiro exemplo, comparo dois quadros de dados diferentes e obtive false. Em seguida, comparo dois quadros de dados idênticos, os mesmos quadros de dados, e obtive o resultado, o que faz sentido, pois são exatamente iguais. Se eu desfizer as alterações que fiz no segundo quadro de dados, ficaremos com dois quadros de dados idênticos novamente, tanto em termos de esquema quanto de dados, e a função retornará verdadeira O uso da função equals permite verificar se dois quadros de dados são completamente idênticos, que é útil para fins de validação e teste de dados Você pode salvar um quadro de dados em um arquivo CSV usando o método CSV Por exemplo, se eu quiser salvar nosso quadro de dados em um arquivo chamado CSV de dados, posso fazer isso com um único comando Depois de executar o comando LS, podemos ver que o arquivo foi criado com sucesso. Salvar o quadro de dados em um arquivo CSV é muito útil quando você precisa armazenar dados para uso posterior, facilitando o compartilhamento ou o recarregamento Os arquivos CSV são amplamente suportados e podem ser abertos por muitos programas de software 9. Entendendo a execução ávida e preguiçosa em Polars: comparação de velocidade com o Pandas para o Big DataFrame: Polars oferece dois modelos de execução para operações de data frame: modo Iger e modo lento Entender a diferença entre esses dois modelos é crucial para otimizar o desempenho Bem, vamos começar com o modo Iger. As operações em um quadro de dados são executadas imediatamente. Os resultados são calculados e retornados assim que uma operação é chamada Isso significa que cada passo que você dá é executado imediatamente e sequencialmente Esse modo é mais fácil de depurar porque você pode ver o resultado de cada operação imediatamente. modo Eager geralmente é preferido em ambientes interativos como notebook Jupra porque permite que você veja o resultado das operações imediatamente É mais adequado para análise interativa de dados e conjuntos de dados menores, onde é necessário feedback imediato Vamos continuar com o Modo Preguiçoso. Em vez de executar as operações imediatamente, polars primeiro cria e otimiza um plano de consulta Essa abordagem permite que os polares otimizem o plano de execução, reduzindo o número de operações e a quantidade de dados processados Polares fundidos preguiçosos se referem a uma forma de realizar operações de dados em que os cálculos são Em vez disso, as operações são atrasadas e executadas somente quando você solicita explicitamente o resultado Essa abordagem permite que os polares otimizem a sequência de operações antes de realmente executá-las, melhorando o desempenho, especialmente com grandes conjuntos Modo Lento geralmente é mais adequado para grandes conjuntos de dados ou fluxos de trabalho que envolvem várias etapas A otimização aplicada pode levar a melhorias significativas no desempenho em relação à execução rápida Acho que a função chega à Vans Kansas, somos bastante autoexplicativos Mas vou explicar brevemente A. A função read A em polares é usada para ler dados de um arquivo A em um quadro de dados polars Park é um formato de arquivo de armazenamento em colunas, otimizado para uso com estruturas de processamento de dados Ao contrário dos formatos baseados em linhas, como CSV, Park armazena dados por colunas em vez de linhas, o que o torna altamente eficiente tanto para armazenamento quanto para processamento O formato colunar é particularmente útil quando você precisa ler somente colunas específicas de grandes conjuntos de dados, pois permite evitar carregamento de dados desnecessários na memória Se você precisar apenas de algumas colunas de um conjunto de dados, Park permite carregar somente os dados relevantes na memória, melhorando a velocidade e reduzindo o uso da memória Aplicativos de big data. O Park é uma ótima opção para aplicativos de big data, especialmente quando você usa estruturas que o suportam, como Apache Park, dusk Agora vamos comparar o desempenho da leitura de arquivos CSV usando Pandas versus Se você se lembra, temos um grande conjunto de dados com mais de 100 milhões de linhas Então, eu vou usá-lo. Primeiro, eu importo Pandas e uso a função de leitura de CSV. Para medir o tempo de execução, eu uso o comando Time it magic no caderno Jupiter Esse comando nos permite medir o tempo de execução e calcular os resultados médios em várias execuções. Então, levará algum tempo para carregar. Isso realmente leva muito tempo. Deixe-me lembrá-lo de que o quadro de dados tem mais de 100 milhões de linhas. Portanto, executar operações nele leva um tempo considerável. Depois de executar o código sete vezes, obtemos um tempo médio de execução de 32 segundos por loop. Agora vamos repetir os mesmos passos que fizemos com os Pandas. Mas desta vez usando polares, usaremos o tempo novamente para ver quanto tempo leva para carregar o quadro de dados A diferença no tempo de execução é imediatamente perceptível. A Polar carrega o quadro de dados significativamente mais rápido. Eu atribuí a expressão anterior à variável TF para que possamos continuar trabalhando com o quadro de dados carregado Então, acabamos de ler mais de 100 milhões de linhas usando Pandas e polares Se observarmos o quadro de dados, podemos ver que algumas das colunas não têm sentido Para facilitar o trabalho com nossos dados, vou renomeá-los. Primeiro, preparo uma lista de novos nomes de colunas e depois uso a função renomear para renomear as colunas no quadro de dados polars Agora podemos ver que renomeamos os nomes das colunas. Temos um conjunto de dados estruturado adequadamente e continuarei agrupando o conjunto de dados pelas colunas de unidade e nível Após o agrupamento, realizarei uma operação de agregação na coluna numérica calculando a soma de Primeiro, seleciono a coluna chamada número no quadro de dados. Em seguida, uso uma função de agregação que soma todos os valores nessa coluna Em vez de manter o nome padrão, atribuo um nome mais significativo à coluna de saída. Para isso, eu uso um alias. Para uma folga, estou calculando a média. Para salário, estou calculando a função máxima. Por fim, selecionarei as colunas necessárias do quadro de dados agregado O método de seleção e os polares são usados para escolher colunas específicas e aplicar transformação a elas. Ele cria um novo quadro de dados somente com as colunas selecionadas, deixando o quadro de dados original inalterado Desculpe pelo erro de digitação. Eu uso a função de impressão para exibir o resultado junto com o título em um editor de código comum. Isso é necessário para ver a saída. No entanto, no caderno Gebr, você não precisa imprimir Você pode simplesmente digitar o nome da variável, o resultado do polo, e ele exibirá automaticamente o resultado de forma interativa. E aqui estamos. Agora, vou usar o comando time it para executar o código várias vezes. No final, veremos quanto tempo é necessário para realizar a operação. Vemos o código sendo executado várias vezes. E no final, descobrimos que foram necessárias três esquivas, 83 segundos por loop, ou posso dizer, por operação Vamos repetir o mesmo processo com os pandas. Demora mais tempo do que com polares. Analisamos o mesmo quadro de dados e precisamos renomear as colunas. Então, vamos fazer isso. O comando é quase o mesmo dos polares, exceto que definimos as colunas primeiro e depois passamos os novos nomes das colunas Agora podemos prosseguir com o mesmo agrupamento e agregação que fizemos acima Podemos ver aqui que o Pandas usa um dicionário dentro da função de agregação para especificar os nomes e operações das colunas Em polares, a agregação foi aplicada às colunas selecionando-as primeiro e depois usando funções como soma média e caixa Em polars, você não pode usar um dicionário diretamente dentro da função de agregação da mesma forma que em Polars exige que você especifique cada operação de agregação explicitamente para cada coluna, e essa é O Pandas fornece uma sintaxe mais curta para agregação. Ambas as expressões nos darão o mesmo resultado, mas a sintaxe é um pouco diferente entre Pandas e Eu recomendo fortemente que você mesmo experimente. Pause o vídeo e repita esse código sozinho. Essa é a aparência da mesa final. Agora vou usar o tempo novamente para executar o código várias vezes. E foi executado sete vezes. Depois de executá-lo, vemos que demorou 7,34 segundos por loop. Podemos ver claramente a diferença. Mas também precisamos considerar os casos em que realizamos essas operações junto com a leitura dos dados. Vou reescrever o código um pouco. Então, vamos ler o arquivo CSV e renomear as colunas. Execute o grupo por operação, agregação e, em seguida, selecione colunas específicas em uma cadeia usando a sintaxe de encadeamento do método polars Isso leva mais tempo. E agora demorou 11,8 segundos. Aqui, eu reescrevi o código para os Pandas fazerem a mesma coisa Eu combinei todas as etapas em uma única linha, assim como fizemos no código polars acima Mesmo sem tempo, eu o executo e meu sistema fica sem memória. Oh, sim, meu sistema está morto. Mas podemos gerenciar isso mesmo com Pandas. Se começarmos a ler o arquivo CSV em partes, deixe-me mostrar como podemos lidar com A leitura do arquivo em partes ajuda a gerenciar o uso da memória. Primeiro, defino o número de linhas a serem lidas na memória ao mesmo tempo, definindo o tamanho do bloco Em seguida, inicializo um quadro de dados vazio que armazenará os resultados finais da agregação de cada bloco Eu li o arquivo CSV em partes usando o loop de quatro, renomeio as colunas e realizo o mesmo agrupamento e realizo o mesmo agrupamento No final, posso coatenar os resultados agregados de cada bloco até o quadro de dados final Além disso, usei o índice Ignore. Verdadeiro. Isso significa que ao realizar operações como concatenação, os valores do índice original serão ignorados e o novo índice inteiro padrão será atribuído ao resultado Isso ajuda a evitar valores de índice duplicados ou não sequenciais ao modificar quadros Aqui não podemos quebrar a linha assim. Então eu mudei para melhor legibilidade. Demora algum tempo, mas finalmente obtemos o resultado. Para evitar a falta de memória, podemos usar o MMIT, um comando mágico do pacote de perfil de memória Ele mede e imprime o uso de memória da execução atual do código Isso ajuda a monitorar o uso da memória para cada bloco. Nesta versão, o MMIT está dentro do loop for antes da operação prnt Ele será executado em cada iteração do loop. Isso é útil para analisar e otimizar o trabalho com arquivos grandes, mas pode retardar a execução do código devido a medidas adicionais Você pode instalá-lo usando o PIP. Obviamente, você deve usar esse comando para habilitá-lo em um ambiente de notebook Jupiter Você usa esse comando somente uma vez, não antes de cada uso do MMD. Depois disso, você pode usar o MMIT para verificar o pico de uso da memória Aqui usamos esse comando para o consumo total de memória do resultado do Pandas Depois de todos os pedaços, fomos processados. Portanto, se o objetivo é verificar o uso final da memória, a segunda variante é melhor. Se o objetivo é monitorar o consumo de memória ao longo do tempo, a primeira variante é mais informativa No entanto, podemos evitar esse problema completamente usando polares em vez de Pandas Vamos voltar para a biblioteca polars. No exemplo anterior, usamos a leitura de CSV a partir de polares. Essa função lê o arquivo CSV inteiro na memória imediatamente, carregando todos os dados em um quadro de dados Assim, podemos realizar operações diretamente nele. No entanto, se o arquivo CSV for grande, essa abordagem pode consumir muita memória, assim como vimos com o Pandas Mas, como mencionei anteriormente, polars também tem um modo lento Se verificarmos o tipo de resultado dos polares agora, veremos que é um quadro lento em vez de um quadro de dados normal Com avaliação lenta ou modo lento, usamos scNCSV em vez de readCSV O ScnCsv não lê os dados na memória imediatamente. Em vez disso, ele cria um quadro lento que registra as transformações e só as executa quando Isso permite a otimização da consulta e uma execução mais eficiente. Copiei o código anterior e simplesmente substituí o ReadCSV pelo ScanCSV . Se verificarmos o tipo de resultado dos polares agora, obteremos um Como os quadros preguiçosos usam execução adiada, podemos realmente visualizar o plano de execução usando o método show graph Esse método gera uma representação gráfica do plano de consulta, ajudando-nos a entender e depurar o pipeline de processamento de dados Ele fornece informações sobre as etapas e otimizações envolvidas na execução da consulta Para usar Mostrar gráfico, você precisa ter o graph com instalado em seu sistema. No macOS, você pode instalá-lo usando gráfico de instalação do Brew no Windows ou Linux. Você pode verificar a documentação oficial para obter o comando de instalação apropriado. Aqui você pode escolher o comando para seu sistema operacional. Observando o plano de consulta, podemos ver que apenas cinco das oito colunas estão sendo selecionadas. Isso significa que os polars carregam apenas as colunas necessárias em vez de ler todo o conjunto de dados na memória Em seguida, chamo o HAD no Polar'sRULT e, em vez de obter os dados reais, vemos Isso acontece porque os quadros preguiçosos não são executados imediatamente Eles apenas constroem o plano de execução. Para realmente executar a consulta, precisamos chamar o collect. O método collect aciona a execução, processa todas as operações e retorna o quadro de dados normal em vez de um quadro lento Como nosso conjunto de dados contém mais de 1 milhão de linhas, execução leva algum tempo No final, obtemos o resultado. Se verificarmos o tipo do nosso quadro de dados agora, veremos que é um quadro de dados de pulso. Não é mais uma moldura a laser. Agora eu copio o código anterior usando o Scan CSV e o executo com collect Em seguida, meça o tempo de execução com o tempo. O código é executado várias vezes e, no final, obtemos o resultado. Vamos comparar isso com a execução anterior. Usando o CSV lido, a execução levou dez pontos e 7 segundos. Não há grande diferença, mas veja isso. Se habilitarmos a execução de streaming definindo streaming equals true, no método collect, processaremos os dados de forma incremental em vez de carregar tudo na memória de carregar tudo na memória A execução de streaming é excelente para grandes conjuntos de dados porque reduz o uso de memória ao processar partes em vez de conjuntos de dados inteiros, e pode potencialmente aproveitar o processamento paralelo, em que partes diferentes são processadas simultaneamente em um curso de CPO para grandes conjuntos de dados porque reduz o uso de memória ao processar partes em vez de conjuntos de dados inteiros, e pode potencialmente aproveitar o processamento paralelo, em que partes diferentes são processadas simultaneamente em um curso de CPO separado. execução de streaming geralmente melhora o desempenho de grandes conjuntos de dados, reduzindo o uso de memória e permitindo o processamento paralelo No entanto, para conjuntos de dados pequenos, a diferença pode ser insignificante Com os polares, os usuários não precisam dividir manualmente seus dados em menores, como fizemos com o Pandas A Polars lida com isso automaticamente. Agora, podemos ver uma diferença significativa no desempenho. 10. Visualização de dados em polares. Vantagens, limitações e uma análise comparativa: Quando se trata de visualização de dados e polares, geralmente é recomendável converter seu quadro de dados em um quadro de dados Pandas Como mencionei anteriormente, podemos usar o método dos dois Pandas para isso Usar o Pandas para plotagem fornece mais flexibilidade. Mas você também pode usar o Matplotlip ou Seaborne, ambas bibliotecas amplamente usadas para o Seaborne, ambas bibliotecas amplamente usadas para visualização de dados. Você pode encontrar vídeos sobre essas bibliotecas no meu perfil. Você pode conferir. salto de plotagem MD fornece mais flexibilidade e permite um controle preciso sobre os Já o Seaborn facilita a criação gráficos estatísticos complexos com uma sintaxe mais simples No entanto, essas não são as únicas opções. Você também pode usar o gráfico HV, uma biblioteca de plotagem de alto nível que funciona nativamente com o quadro de dados da Polar Ele oferece uma interface poderosa e flexível para criar visualizações interativas. Se você quiser saber mais sobre o HVPlot, confira a documentação Obviamente, você precisará instalá-lo primeiro antes de usá-lo. Em polares, você também pode usar o método de plotagem embutida para criar uma visualização básica sem converter em visualização básica sem converter pandas ou usar o O método de plotagem compreende a estrutura dos quadros de dados polares e pode gerar gráficos usando o back-end básico do gráfico MD Você pode especificar o tipo de gráficos, como Scutter, linha Você também define nomes de colunas para os eixos X e Y junto com parâmetros adicionais de plotagem, como o título. Esses tipos de gráficos são adequados para criar uma visualização simples No entanto, lembre-se que a funcionalidade de plotagem integrada em polares é limitada em comparação com bibliotecas como HV plot ou Mod plot Leap, que Para obter vantagens adicionais, talvez seja necessário usar outras bibliotecas. Então, abordamos muita coisa hoje. Embora os polares ofereçam muitas vantagens , eles também têm algumas limitações e desvantagens. Vamos ver o que é. Primeiro, a polars é uma biblioteca relativamente nova em comparação com a Pandas e pode não ter um suporte tão amplo da comunidade ou tantas extensões de terceiros disponíveis Pandas tem um ecossistema maior e mais estabelecido, com muitas bibliotecas e ferramentas de terceiros projetadas para funcionar perfeitamente com os quadros de dados do Pandas Sendo uma biblioteca mais recente, as polars podem não ter o mesmo nível de compatibilidade com as bibliotecas e ferramentas de análise de dados existentes bibliotecas e ferramentas de análise Você deve considerar isso antes de mudar da biblioteca Pandas para polars Outra limitação é que os polares não têm o mesmo nível de flexibilidade de indexação que os Pandas Embora ofereça suporte à indexação baseada em linhas, ele não possui os recursos robustos de indexação hierárquica e multinível que o Pandas Por exemplo, em polares, você só pode definir uma única coluna como índice de linha, enquanto o Pandas permite estruturas de indexação mais complexas Se você já usou a indexação de vários níveis em seu projeto antes, isso pode ser algo a considerar ao mudar para Além disso, os recursos de visualização em polares são atualmente limitados em comparação com No Pandas, é relativamente simples visualizar dados diretamente do quadro de dados usando métodos de plotagem integrados ou por meio da integração perfeita por meio da integração perfeita com bibliotecas de visualização externas. Portanto, se a visualização é uma parte crucial do seu fluxo de trabalho e você não precisa dos benefícios de desempenho dos polares para seus casos de uso específicos, Pandas pode ser a opção mais conveniente Mudar de Pandas para polars pode potencialmente levar a falhas inesperadas de comportamento ou funcionalidade devido às diferenças nos conjuntos de recursos e capacidades das duas Como mencionei anteriormente, o Pandas já existe há mais tempo e tem um conjunto de recursos mais maduro e abrangente Embora o polars forneça muitas funções essenciais de manipulação e análise de dados, ele pode não ter alguns dos recursos mais avançados ou boas funcionalidades disponíveis no Então, pessoal, parabéns por concluir esse curso. Você fez um bom trabalho. Continue aprendendo, continue programando. Nos vemos nos próximos cursos. Tchau.