Operações Avançadas: Análise de Dados com o Tutorial Python & panda

2460 Views

7.1 Seção Intro

O que está acontecendo, todo mundo? Bem-vindo à seção sete dos nossos Pandas com Python para a série de tutoriais de análise de dados . Nesta seção, vamos falar sobre como lidamos com conjuntos de dados maiores. Então, o que começamos a falar no segundo na seção seis era mais sobre reamostragem. Então, a redefinição de resolução permitirá que você diminua o tamanho do conjunto de dados rapidamente. Outra razão pela qual você pode diminuir o tamanho de um conjunto de dados é apenas para fins de visualização. Então, se você vai traçar um gráfico, você, seus olhos, visualmente, não verá uma diferença entre, digamos, 100.000 pontos de dados e 10.000 pontos de dados. Então você pode também fazer os 10.000 pontos de dados, tudo bem? Não há razão para fazer 100.000. Isso só vai fazer seu gráfico atrasar e seu computador chorar. Então, isso é uma resampling, mas também nesta seção vamos falar sobre alguns conceitos mais avançados, como fazer mais análises. Então, uma coisa legal que podemos fazer é tabelas de correlação e covariância com o Pandas. E isso é, novamente, como algumas das outras coisas que podemos fazer com o Pandas que são Realmente computacionalmente intensas, ou pelo menos, eu acho que você não diria que é computacionalmente intenso, mas se você tivesse um grande conjunto de dados, seria. Com os pandas, porém, não é, é rápido e você simplesmente não precisa codificá-lo, e isso é ótimo. Então, tabelas de covariância, tabelas de correlação, estas são coisas que são Não, nós costumávamos medir basicamente as coisas estão correlacionadas ou tem algum tipo de co-variância, vamos falar um pouco mais sobre isso quando chegarmos lá. Mas essa é uma tarefa que é realmente um grande desafio criar essas tabelas, mas com o Pandas você pode fazer isso instantaneamente, certo? Então é muito legal. Então estaremos falando sobre isso. E fazendo várias estatísticas. E então vamos conversar sobre buffering. Então, como você armazena dados no quadro de dados de um panda? Ou até mesmo tirar um buffer de quadro de dados. Então, um exemplo porque você pode fazer isso se o seu conjunto de dados for maior que o da RAM. Ok, muitos bancos de dados podem se tornar muitos, muitos gigabytes ou até terabytes. Então, só porque você tem talvez quatro GB de RAM ou algo assim, não significa que você não pode trabalhar com bancos de dados com muitos terabytes. Mas você, o primeiro passo para lidar com isso é o buffering. Então, é sobre isso que vamos falar nesta próxima seção é basicamente trabalhar com conjuntos de dados maiores e depois falaremos sobre funções de mapeamento. Então é mais basicamente operações de avanços, e isso será como a última grande seção antes de irmos para a última e última seção, onde nós apenas conversamos sobre como trabalhar de verdade com um banco de dados, e então vamos realmente configurar um banco de dados e trabalhar com esse banco de dados, e mostrar como isso funciona. Então, de qualquer forma, fique ligado para tudo isso, vamos em frente e começar a seção sete.

7.2 Classificação Básica

Todos, bem vindos à Parte Dois da Seção Sete de nossa série de tutoriais Pandas com Python para análise de dados. Neste tutorial, vamos falar sobre classificação, para que possamos usar a classificação para classificar quadros de dados por colunas. Podemos fazer isso classificando por uma única coluna, mas na verdade classificamos por várias colunas e também várias regras, como crescente, decrescente. Então, primeiro vamos precisar de alguns dados para trabalhar aqui e apenas alinhados com vários tipos diferentes de dados. Vamos fazer outra onda adquirindo dados. A próxima coisa que quero que façamos é, vamos extrair alguns dados do Quandl, desta vez sem fazer download, ou pelo menos desta vez sem baixar o arquivo manualmente. Então, com o Quandl, deixe-me parar um Quandl bem rápido aqui. Então, com o Quandl você pode fazer o que fizemos antes e procurar por um conjunto de dados, você também pode, eles têm uma API Veja se podemos acessar ainda por aqui. Você pode consultar sua API e há até um módulo de quatro python para se conectar em tudo isso e se você quiser verificar isso, eu recomendo verificar. Mas no nível mais básico, normalmente você pode consultar como basicamente você está vendo aqui em várias formas, então. Uma coisa que podemos querer fazer é dizer que queremos obter o preço para a Apple, então vamos procurar a AAPL e vamos por esse preço, vamos apenas pegar a Apple Inc. aqui. E, daqui, há algumas coisas que você pode fazer. Uma coisa que você pode fazer é clicar na biblioteca Python. E isso diz a você, como se você estivesse usando o pacote Quandl Python, o que você precisa fazer é apenas quandl.get e, em seguida, você coloca este pequeno ticker como uma coisa aqui. E isso é só para pegar Para ajudar a construir esse URL, mas a outra coisa que você pode fazer é baixar e escolher CSV, depois de clicar nele, clicar com o botão direito e copiar o endereço do link. Então, quando nós movemos isso para cá, o que temos é isso, certo? Então, esse é o link que realmente queremos. Agora, é claro, para visitar links com python, precisamos importar o URL live.request. Agora vamos construir um picles. Então, vamos definir dados de pickle. Parms vazios. E isso será lido primeiro. Read será igual a urllib.request.urlopen. E o URL que queremos abrir é esse URL, de modo que os preços da Apple. Então, abrimos essa URL e depois lemos isso em um CSV ou lemos isso em um quadro de dados usando CSV. Então, podemos fazer isso porque isso é apenas estrutura CSV. Mas na verdade, não é, quero dizer, é de um .csv, mas está sendo salvo, puramente como, você sabe, como uma lista, ou até mesmo uma string em leitura. Como se lesse, se imprimimos, não vai parecer muito com um CSV. Então, df, eu só estou mostrando a você porque é a estrutura que conta, então quando dizemos df = pd.read_csv ele vai ler isso em saber que é um CSV, mas não é como se tivéssemos baixado algum arquivo .csv e depois abriu dessa maneira. É apenas a estrutura. Então, quando vamos para o pickle, nós também vamos imprimir o df.head. E então finalmente vamos salvá-lo. Então, df.to_pickle. E nós vamos apenas salvar este picles como df.pickle. Então, isso irá salvá-lo em nosso diretório local. Então, vamos em frente e picles dados, e vamos em frente e executar isso. Está demorando um pouco, às vezes o Quandl demora um pouco, mas de qualquer maneira aí está. E agora nós deveríamos ter um df.pickle, então se nós pararmos aqui. Aí está. Picada de ponto DF. Então nós temos isso e estamos prontos para continuar. Nós não queremos fazer isso toda vez, então vou comentar isso por enquanto. Agora, para ler isto, nós teremos que ir de picles então nós diríamos que DF é igual a PD.read pickle sublinhado E então nós especificamos esse nome. E como é local, podemos fugir normalmente fazendo isso. Mas se você está no Linux, você pode não conseguir fazer isso. Não tenho certeza sobre o Mac. Você pode ter que dar o caminho completo. Agora estamos prontos para, temos os quadros de dados. Então vamos em frente. Vamos imprimir o df.head bem rápido e olhar para isso mais uma vez. Assim, você pode ver que estamos começando em 2015 e parece estar indo em ordem decrescente. Então, vamos fechar isso e uma coisa que podemos fazer é classificar por data. Então, como agora mesmo Quando olhamos para trás, vamos recolocá-lo mais uma vez, podemos ver que, em primeiro lugar, ainda não há um índice, mas há apenas colunas, então primeiro classificaremos por data e classificaremos bem simples. Nós podemos apenas fazer df.sort E então nós dizemos o que queremos classificar? Bem, queremos classificar a coluna de data. E então nós vamos dizer inplace = True. E agora, podemos, vamos olhar mais uma vez. Então agora começa com a data mais antiga e está basicamente na ordem crescente. Agora o que vamos fazer é definir o índice. Então, vamos dizer df.set_index. E então vamos configurar esse índice para ser 'Data' e inplace = True E então vamos encurtar este dataframe dizendo df = df ['Adjusted Close'], e então nós vamos imprimir a cabeça. Então vamos ver onde estamos agora. Opa, deixe-me derrubar isso. Ok, então temos isso, e é apenas uma série sem realmente um título aqui. Ok, bem, nós temos o nosso índice, pelo menos. Então agora podemos fazer é. Vamos em frente e executar um gráfico de pontos DF e plt show de pontos. Então precisamos trazer a parte da biblioteca. Então importe lote de lote de lote de ponto de lib de libra como plt. Nós vamos apenas desligar o básico ou o padrão por enquanto. Então, há o nosso gráfico padrão, preço padrão e outras coisas, e nós temos os dados de data e todas essas coisas. E então vamos fechar, e se não tivéssemos resolvido? E se o fizéssemos, nos livramos disso E corremos isso. O que temos é a inversão, certo, porque os gráficos de Matplotlib estão em ordem, por isso, embora tenhamos dados de data aqui em baixo, é obviamente invertido. Certo? Ele virou dados. Então é por isso que queríamos virar e executar esse tipo de coisa. Agora, e se você quiser, talvez você não queira classificar por data, talvez você queira classificar por outra coisa, certo? Você não precisa dizer, digamos, o que há de bom em pandas, se faz um monte de coisas inerentemente com alguma compreensão mágica. Então, vamos parar a plotagem por enquanto. Nós vamos apenas comentar isso. E se em vez disso você fez df = pd.read_pickle. Nós vamos ler no df.pickle novamente. Df.picke. E nós vamos imprimir df.head, e então o que nós vamos fazer é, nós podemos fazer df.sort, e desta vez vamos classificar pelo preço aberto, e então, novamente, whoops, vamos fazer vírgula no local é igual a true e, em seguida, imprime df.head. Então, isso é muito do df.head, na verdade, mas os dois últimos estão mais interessados ​​em slides como esses. Então este é o meu preço aberto apenas e então este é tudo, antes de tudo, isso é ajustado de perto e depois fazemos o material aberto. Então, tenha em mente que o fechamento ajustado está incluindo o desdobramento de ações, enquanto o aberto normal simplesmente não era. Mas, claro, você pode classificar por qualquer coluna que quiser. Agora, é isso para este tutorial. Mas o próximo tutorial, vamos falar sobre a classificação baseada em várias regras de cada vez. Então, isso fica um pouco mais interessante quando você quer classificar por uma coisa e por outra coisa depois disso. Então, estaremos falando sobre classificação múltipla nos próximos tutoriais, então fique atento para isso.

7.3 ordenando por várias regras

Olá pessoal e bem-vindos à parte III da seção sete do nosso Python com Pandas para a série de tutoriais de análise de dados. Neste tutorial, vamos falar sobre classificação baseada em várias regras. Então, para começar, vou em frente e excluo tudo, exceto as importações aqui. Nós não vamos usar esse enredo, mas vamos deixar isso por enquanto. Então, e se você quisesse classificar talvez algo em ordem alfabética e depois que você o classificasse alfabeticamente, talvez numericamente ou algo assim ou talvez numericamente, em ordem alfabética. Por exemplo, se você é uma escola e quer classificar as pessoas pela nota, na escola, não na turma, mas na décima série, na 9ª série e assim por diante. Você quer classificar as pessoas pela nota e depois pelo nome, ou algo assim. Como você faria isso? Bem, podemos fazer isso com os pandas de forma relativamente simples, mas tente imaginar como você pode fazer isso sem os pandas. Esse é outro desafio decente, então primeiro vamos criar esse tipo de dicionário escolar. Então, diremos escola igual, e é um dicionário, e depois vamos dizer que temos algumas coisas. Nós teremos uma String e uma lista, e depois faremos um, dois e três, e então este será o nome do aluno. E então teremos idade para o aluno e depois teremos nota. E mais uma vez, é a sua série na escola, como no nono ano, no décimo ano e assim por diante. Então vamos apenas tentar, vamos tentar fazer dez. Então, um, dois, três, quatro, cinco, seis, sete, oito, nove, dez. Queremos ter dez só assim temos o suficiente para realmente significar algo. Então, vamos dizer que temos Jeff e depois vamos ter um Carrol, e depois um Kyle, um Adrian, uma Jessica, teremos um Scott. Um curtidor, um Kelly, um Brittney e um Joe. E, em seguida, idade, isso será um pouco mais fácil, vamos apenas adicionar algumas idades. 18, 17, 15, 15, 16, 17, 18, 19, 18, 14. Agora vamos ver, um, dois, três, quatro, cinco, seis, sete, oito, nove, dez. Apenas certifique-se de ter dez. Coloque o que você quiser lá. Fazê-los tipo de idade próxima, pelo menos, para que possamos classificar por eles e isso fará sentido e, em seguida, para as notas, basta fazer algo entre nove e 12 Então, 12 11 9 10 11 12 12 11 10 e 9. É o que eu vou fazer. Mais uma vez você pode me copiar se quiser. Não é tão importante se você não o fizer. Então, agora vamos carregar esse quadro de dados. Então, vamos dizer que df é igual a pv.dataframe para a escola. Então, nós carregamos isso, vamos imprimir esse dataframe, vamos ter certeza de que não temos um erro de sintaxe até este ponto. Nós não. Então, nós temos isso, temos idade, grau e nome. Então está tudo aqui e estamos prontos para roncar. Então, primeiro de tudo, como você já viu, podemos fazer df2 = df.sort e podemos classificar pelo aluno e suas notas, para que possamos imprimir {df2}, salvar e executar isso, e aqui temos a 9ª série, 9, 10, 10, 11, 11, 11, 12, 12, 12. Então, classificamos por grau com relativa êxito. Nós também podemos classificar de forma diferente. Podemos classificar por idade. Corra isso, aí está. Classificamos por idade, 14, 15 e assim por diante. Mas e se você quisesse classificar por série e depois por idade nessa série? Bem, o que podemos fazer é dizer que DF2 é igual a DF. E em vez de colocar apenas uma coisa, colocamos uma lista de coisas. E assim, primeiro, vamos classificar por nota e, depois que a nota estiver sendo classificada, classificaremos por idade. Então, se tivermos pessoas que estão exatamente no mesmo nível, teremos certeza de que elas serão classificadas pela idade delas. Então, vamos imprimir o df2. E aqui vai você. Então, temos a 9ª, 9ª e 14ª, depois a 15. Então você tem 10ª, 15ª, 18ª, depois 16, 17, 19. E então 12, 17, 18. E então 18 e 18 são o mesmo então Oh, nós realmente não precisamos fazer nada lá. Posteriormente, poderíamos fazer todos os três, na verdade. Você não precisa apenas fazer dois, você poderia dizer df2 = df.sort. E então nós classificamos por série, podemos classificar por idade. E então podemos realmente classificar pelo nome. Então imprima {df2}, salve e execute isso, e aí está. Nós temos tudo sendo classificado agora, então nota, depois idade, e então se a idade for idêntica. alfabético. Então lembre-se que Jeff e Tanner, por exemplo, são ambos de 18 e 12 anos. Então, primeiro foi ordenado pela 12ª série, eles eram os mesmos. Então tentamos resolver esse empate com a idade, mas a idade é idêntica. Então tentamos resolver esse empate pelo nome e agora por ordem. E acontece que Jeff vem primeiro antes de Tanner. Legal. Mas e se. E se você quiser Classificar por Grade, mas não quiser classificar por Grade Crescente, você quer classificar por Grade descendente, mas Age e Name podem ser ascendentes. Porque ascender é obviamente o padrão. Como faríamos isso? Bem, podemos fazer isso também por outro parâmetro. Então fazemos df2 = df.sort e então novamente classificamos pelos mesmos parâmetros de antes. Então eu vou preencher estes aqui. Poderia ter copiado e colado. Então grau, idade, nome e então temos um parâmetro chamado ascendente. É apenas literalmente um parâmetro chamado ascendente. O padrão é verdadeiro. Mas poderíamos dizer o padrão agora, poderíamos definir isso como falso e agora tudo seria descendente. Então poderíamos dizer, copie isso, venha aqui e imprima isso. Nós devemos nos safar disso. Com certeza. Agora tudo está descendo. Mas e se quisermos apenas que uma coisa esteja descendo? Então, vamos copiar isso Desce aqui. Colar. E em vez de apenas ter um absoluto, podemos transformar isso em uma lista. Então, queremos que a nota seja decrescente, mas depois queremos que a idade e o nome sejam ascendentes. Tão falso, verdadeiro, verdadeiro, certo? Então está se aplicando em ordem, então Falso é o zero-th aqui, é o zero-th aqui. Esta é a primeira que uma falta se aplica Verdadeiro, segundo, suponho e aplico a Verdade. Então, podemos salvar e executar isso e agora você vê que temos a primeira série que é. Descendo, começamos com 12 e depois de Grade classificamos por Idade, ascendente, sim, e depois disso classificamos por Nome, ascendendo. Muito legal. Enfim, isso está classificando. Obviamente, provavelmente levando a isso você provavelmente estava se perguntando quantas maneiras podemos realmente classificar alguma coisa? Não usamos apenas o .sort e é isso? Mas nota Na verdade, tivemos alguns exemplos e coisas sobre os quais poderíamos personalizar. Então, na verdade, é muito mais complexo do que você provavelmente pensou que fosse. Pelo menos foi assim que me senti. Então de qualquer maneira. Essa classificação e todas as várias maneiras de classificar as coisas e tudo isso No próximo tutorial, vamos falar sobre a re-amostragem. Então, isso é apenas um dos fundamentos da re-amostragem, onde, geralmente, combinamos o tamanho de um conjunto de dados usando a re-amostragem, fazendo coisas como a média de cinco coisas, e convertendo isso para, basicamente, cinco linhas, convertendo isso para uma linha, ou algo parecido. Mas você verá o que quero dizer no próximo tutorial. Então, fique ligado para isso

7,4 reamostragem tempo básico e como (média, soma etc)

O que está acontecendo com todo mundo? Bem-vindo à quarta parte da seção sete da nossa análise de dados com o Panda Tutorial Series do Python. Neste tutorial, abordaremos como redefinir a amostra de um quadro de dados. Então, a ideia de uma reamostragem é pegar um quadro de dados. Geralmente, em alguma forma de série temporal, você pode fazer séries não temporais, em que é um pouco mais profundo. Mas, geralmente, isso seria com dados de séries temporais, e o que você vai fazer é pegar uma série de tempo, digamos que é algo atualizado a cada milissegundo, e você pode dizer, em vez de cada milésimo de segundo, que eu gostaria para atualizar isso a cada minuto. E então, se você quiser, se você tem algo atualizado a cada minuto, mas na verdade você só quer que atualizado uma vez por semana, você pode fazer isso. E o que isso faz para você, é que você pode atualizar para ser, talvez, a soma de todo esse período. A média ou a média desse período inteiro. Período. Ou até mesmo você pode abrir um ponto alto que falaremos quando chegarmos lá. Então, com isso, vamos em frente e começar. Então, a primeira coisa que vamos fazer aqui é deixar tudo claro até as coisas do matplotlib. E então também, whoops, matplotlib Nós vamos importar o estilo e depois vamos usar esse estilo, e vamos usar cinquenta e oito Agora, a próxima coisa, vamos carregar nosso picles então vamos dizer df = pd.read_pickle. E vamos ler em df.pickle. Agora, vamos classificar por data porque sabíamos que era um problema antes, então df.sort e queremos classificar por data, inplace igual a true. E então o que vamos fazer é precisar converter em data e hora. Então, se não dissermos a data, teremos um problema, e então há uma diferença entre um selo de data e outro, como o formato de data do panda. Então, geralmente, você pode pegar qualquer data e convertê-la em uma data de pd, então vamos em frente e fazer isso. Nós vamos dizer df E então nós vamos dizer date = pd.to_datetime e vamos converter df ['Date'] para que apenas converta para data. Em seguida, vamos dizer df.set_index e, em seguida, dizemos que queremos definir o índice para ser uma data e, em seguida, também dizemos que é inplaceTrue. Agora que fizemos tudo isso, vamos em frente e imprimamos df.head, veja o que temos agora. Ok, agora podemos fazer uma nova amostra desses dados. Agora, esses dados atualmente são dados de um dia. Começa como aberto, alto, baixo, próximo. E é atualizado uma vez por dia, mas é um dia de negociação. Então, no fim de semana você pode não ter nenhuma negociação acontecendo, bem, você não terá negociação, então vai ser, há muita coisa. Agora, a próxima coisa é como podemos fazer uma nova amostragem e, em seguida, quais são as opções? Então, primeiro de tudo, para resample, podemos fazer algo assim. Você pode dizer, vamos fazer df2 = df.resample, e queremos uma nova amostra, e a primeira coisa é pelo que é uma espécie de medida. Então o capital D é para o dia, e você poderia até dizer 3D, por 3 dias, e então finalmente você tem outro que é como você quer fazer uma nova amostra disso? Então, isso pode ser algum, dizer ou abrir alto baixo fechado. Nós vamos usar a média. Agora, a questão é: como você sabe quais são todos esses valores? Bem, você pode pensar em alguns deles e eles fazem um pouco de sentido, mas há muitos deles que realmente entram em jogo, então deixe-me arrastar esta janela. Então, esses são todos os aliases de offset, e aqui está a URL para qualquer um que esteja interessado, mas essas são todas as suas escolhas. Você pode fazer uma nova amostra por dia útil, um dia de calendário personalizado, dia de calendário de frequência semanal, certo? Trimestral, anual, por hora, minuto e assim por diante. Ok, então você pode ir muito avançado aqui se você quisesse. Então, e depois também vamos ter minuto. Mas você também pode fazer minutos como três, se quiser. Você poderia fazer três min. E isso também seria minutos. Apenas para o registro. Eu nunca usei o t. Eu sempre usei o min. De qualquer forma, menos três. Nós faremos três d Por três dias, e depois disso nós imprimiremos, imprima df2.head. E vamos correr bem rápido. E assim podemos ver aqui que basicamente é a cada três dias. Certo? É apenas re-amostrado a cada três dias. Uma coisa a notar quando você está re-amostragem, se você re-amostra por três dias e não há dados para esse período de três dias você vai lançar um erro. Não, não, desculpe, você não vai lançar um erro, mas você vai ter um não um número, como não haverá nenhum valor. Então, muitas vezes, quando você está re-amostrando, você terá que eliminar informações não disponíveis. Agora vamos em frente, vamos fazer o df2 ['Adjusted Close']. E enquanto estamos nisso, vamos em frente e traçar o original também. Então, vamos traçar os dois e ver qual a diferença maior que isso causou. E depois vamos chamá-lo aqui. Salve e execute isso. Onde está meu gráfico? Aí está. Ok, então você pode ver principalmente você está vendo apenas uma linha. Você quase não consegue nem dizer que eles estão um sobre o outro, mas vamos ampliar para uma área específica, vamos fazer isso. Ainda não posso dizer realmente. Ainda não posso dizer realmente. Somente quando você aumenta o zoom realmente começamos a ver tudo bem, sim. Então, esta linha vermelha está um pouco atrasada na linha azul. E isso é porque é uma média, é só, por três dias, qual foi o preço médio? Então, por três dias. Qual foi o preço médio? Estava aqui embaixo por três dias e assim por diante. Tão perto disso. Então, agora que fizemos isso, poderíamos fazer três dias, também poderíamos fazer três meses. Então, poderíamos levar isso aqui, e poderíamos repetir a amostragem, em vez de três dias, vamos fazer apenas um mês. Então, copie, cole, E assim o 3D fará 1M por um mês e nós chamaremos isso de df3, df3. E então nós vamos apenas pegar essa cópia, colar e então nós vamos fazer o df3. Então eu vou traçar tudo isso. E então vamos esperar pelo gráfico novamente, suponho. Por alguma razão, está demorando muito. Não são tantos dados. São dois mil ou algo assim. De qualquer forma. Então você tem isso e então podemos ver de novo. Você sabe, quais estão demorando mais que outras. Mas em uma escala maior, você não vê muita diferença. É só quando você começa a aumentar o zoom. E então podemos fazer uma reamostragem ainda maior. Poderíamos dizer que em vez de um mês DF4 poderíamos fazer 12 meses. E df4 lá e nós podemos copiar isso de novo, cole e faça os quatro aqui, então 12 linhas se você quiser e assim por diante. Assim, a lista poderia continuar e poderíamos usar todas essas opções da lista que mostrei. Antes. E finalmente, neste momento, podemos definitivamente ver que a linha amarela se destaca da multidão, mesmo com o zoom total. Mas, o resampling é muito bom porque, e eu acho que mostrá-lo visualmente também é muito útil, porque realmente mostra como a granularidade pode realmente importar. Se você está olhando para um conjunto de dados tão longe. Sim, o ano faz a diferença. Mas e as outras granularidades? Na verdade, um mês e três dias em bruto são quase indistinguíveis. Mas quando aumentamos o zoom, mais uma vez claramente um ano é demais. E então estamos começando a distinguir um mês, mas não há diferença entre três dias e um dia, certo? E então podemos continuar ampliando, torna-se um pouco mais. É óbvio, mas é preciso muito para que possamos realmente enxergar, com o zoom de qualquer maneira, a partir do conjunto de dados completo, para ver as diferenças entre um dia e três dias. Mas está aí. Mas apenas depende de quantos dados você está realmente vendo. Mas um gráfico é um ótimo exemplo, porque é preciso ter muitos recursos para representar graficamente as informações, portanto, se você não está perdendo nada visualmente, fazendo o gráfico de um gráfico desse tamanho e não podemos diferenciar entre um dia e um mês . Bem, os dados de um mês são como 30 vezes menos dados. Certo? Então, é um grande negócio, é um entre 30 dados. Por isso, pode ser útil reduzir os conjuntos de dados dessa maneira. Agora. Outra maneira útil de testar dados é re-amostrar o open high high close. A ideia é que você re-amostra seus dados e, em seguida, para esse período de tempo. digamos que você re-amostrado por um mês abra alta baixa fechar, o que você iria receber de volta para você como o aberto para o valor inicial O maior valor nesse período de um mês, o menor valor nesse período de um mês. E então esse último valor nesse período de um mês. Então, é um pouco mais descritivo para você. Mas ainda é uma espécie de pares para baixo seus dados. Mas você ainda vê as flutuações máximas e mínimas e outras coisas. Então, de qualquer maneira, é isso que vamos cobrir no próximo tutorial. Então, fique ligado para isso.

7,5 reamostragem para ohlc

Olá pessoal e bem-vindos à parte cinco da seção sete da nossa análise de dados com séries de tutoriais de python e pandas. Neste tutorial vamos falar sobre re-sampling, só que desta vez re-sampling para abrir high close close. Então, primeiro de tudo, vamos em frente e deletar tudo até basicamente a redefinição do índice aqui. Então volte assim. Excluir. Então, agora o que queremos fazer é reavaliar o open-high-low-close. E novamente, a ideia por trás do open-high-low-close é que podemos ter um período de tempo e re-amostrar esse período de tempo. Então, digamos que normalmente você recebe informações diárias. Bem, você re-mostra esse período de tempo por dez dias e isso é o que nós acabamos fazendo lá, com abertura alta baixa, fechando ao longo de dez dias, nós reportaremos o que era o primeiro preço, qual foi o último preço, qual foi o preço alto e qual foi o preço baixo. Então, na verdade, com os dados padrão que estamos recebendo do Yahoo agora. Isso está aberto alto baixo perto. Então, podemos imprimir DF.head. E nós podemos ver que isso é realmente aberto alto baixo fechado porque os estoques estão sendo negociados você sabe pelo milissegundo e então o que acaba acontecendo é, você sabe por causa do milissegundo mas isso é dados uma vez que estão mortos, certo? Mas até mesmo o estoque que é atualizado uma vez por minuto é geralmente aberto alto baixo dados fechados porque Novamente, os estoques estão sendo negociados muitas vezes por milissegundo, por isso mesmo segundo dados é geralmente aberto alta baixa fechar. De qualquer forma, o que vamos fazer é mostrar como podemos usar o Pandas para criar dados abertos de alta baixa aproximação. Então temos df.head aqui, e vamos deixar isso, suponho. E então o que vamos dizer agora é o df2. = df e faremos isso contra o fechamento ajustado, então Adjusted Close, e depois faremos .resample como sempre e, em seguida, diremos que queremos fazer uma nova amostra para dez dias e, finalmente, como será igual a OHLC. Que é apenas curto para abrir alta baixa perto. E, na verdade, isso deve ser subestimado, e não o maiúsculo. Então, agora, para ver o que temos aqui, vamos imprimir o DF2.head. Salve e execute isso. E lá temos alguns dados. Agora, novamente, quando você vai para uma nova amostra, você vai descobrir que com bastante freqüência você não tem dados disponíveis. Então, novamente, a maneira que nós checamos dados não disponíveis seria algo assim: Se df, dois pontos são nulos, ponto valores pontuam a soma desses valores se houver mais de um deles. Nós diríamos, nós contemos dados NAN! Então, vamos executar isso e ver se conseguimos algum no quadro de dados. Nós não fizemos. Isso é ótimo. E se nós reamostrarmos para dois dias? Correu isso. E vamos verificar o fundo e Chucky Darnes, nós contemos dados NAN. Por que você acha que não temos dados numéricos quando fazemos uma nova amostra dos dois dias? Bem, a razão pela qual nós fazemos é porque isso é dois dias, então digamos que tentamos abrir alta baixa perto na segunda-feira, isso vai ser um problema. Se fizermos isso em um domingo, isso será um problema, e assim por diante. Então, simplesmente não podemos fazer isso porque não há dados. Da mesma forma, poderíamos fazer D, e também teríamos um problema por causa do fim de semana. A mesma coisa é verdade, menos de um dia, basicamente, porque não é responsável pelo fim de semana. Então, o Pandas é meio cego em seu Dishing fora desses valores. Mas o que o Yahoo está fazendo é que eles têm preços de ações. Ou realmente quem está fornecendo. Eu duvido que o Yahoo é aquele que fornece seus preços. Provavelmente a Reuters, ou a Bloomberg ou algo assim. Estamos apenas fornecendo seus preços, no entanto. Eles executam a informação aberta, alta, baixa e próxima. E o que eles provavelmente estão fazendo, quando fazem uma nova amostragem por dia, fazendo algo assim, o próximo passo que eles provavelmente farão é, não terão dados disponíveis. Então, a próxima coisa que eles farão é df2.dropna E então eles só vão dizer no lugar é igual a verdade. E então eles provavelmente não terão nenhum desses problemas, então eu vou cortar, colar lá, salvar e rodar. E com certeza não temos problemas. Por esse mesmo sinal, também podemos preencher com base em quando usamos amostras. Lembre-se de que falamos em fazer o preenchimento com o drop e OK. Nós conversamos sobre o que poderíamos fazer lá. Bem. Em vez de soltar NA, podemos comentar isso. Ops [COUGH] Podemos comentar isso e na resampling como outro método, podemos realmente adicionar um método de sublinhado de preenchimento e esse método de preenchimento pode ser qualquer um de uma variedade de métodos, b fill, forward fill, seja o Now Agora, novamente estamos vai usar o método que você deveria usar. Vamos perguntar, pense por si mesmo. Qual método de preenchimento você deve usar com os preços das ações? Porque, pense nisso, as pessoas usam os preços das ações para fazer análise de dados, então o que as pessoas estão fazendo quando fazem análise de dados sobre os preços das ações? Eles geralmente estão tentando prever os preços. Então, quando você tem um método de preenchimento, você deve ter futuro preços e empurrá-los de volta ou você deve ter preços anteriores e empurrá-los para a frente? Se você vai se encher. Você também pode simplesmente removê-los, mas e se você quiser preencher? Bem, você usaria um preenchimento antecipado. Você não voltaria a encher porque é como ver o futuro, então você definitivamente não quer fazer isso. Então, usamos um preenchimento antecipado e isso é Agora, geralmente, com dados de estoque, eu nem faria um preenchimento antecipado. Eu não preencheria nada. Você não deveria fazer isso. Mas há alguns dados, onde, se você quiser reexaminar, mas você vai acabar com alguns dados não disponíveis, você vai querer preenchê-lo, por qualquer motivo. Então, vamos em frente e fazer isso. Então, vamos exorcizar nosso preenchimento, e, com certeza, deixando para trás essa queda em um que fizemos antes Podemos ver que não estamos tendo nenhum problema aqui, por isso está sendo reamostrado em abertura alta baixa perto e tudo o que e tudo, todo mundo é um vencedor hoje. Então, isso é reamostrar para abrir um close mais alto. No próximo tutorial vamos falar sobre correlação e covariância e fazê-lo dentro dos pandas. Então, ambos são realmente complexos. Para fazer tudo sozinho. especialmente quando começamos a comparar a correlação e a criar tabelas de correlação e coisas assim. Mas eles são realmente muito poderosos para poder ter à sua disposição. Então, é isso que vamos cobrir no próximo tutorial, então fiquem atentos para isso.

7.6 Correlação e Covariância - Parte 1

Olá pessoal, e bem-vindos à sexta parte da seção sete do nosso Python com pandas para a série de tutoriais Análise de dados. Nesta parte, o que vamos falar é de correlação e covariância. Principalmente, como fazemos isso em um quadro de dados inteiro e, em seguida, até construímos essas tabelas de correlação e covariância? Então, para começar, precisaremos de alguns tipos diferentes de conjuntos de dados, sabe? Ou pelo menos várias colunas, porque a ideia de correlação e covariância é medir, você sabe, semelhanças em movimento entre duas entidades. Então, um exemplo aqui pode ser comparar as taxas anuais de criminalidade, taxas de emprego. Uma renda ou algo assim, certo? E a ideia é, esperançosamente, encontrar um relacionamento, você sabe, com a correlação positiva ou correlação negativa e assim por diante. Então, outros exemplos com você sabem, financiem onde. Encontramos alguns ativos que são positivamente correlacionados ou negativamente correlacionados e a ideia é quando um sobe, o outro deve subir ou quando um sobe, o outro deve descer. Ou outro método para usar isso é quando eles começam a divergir como se você tivesse dois ativos altamente correlacionados. E um começa a subir e o outro desce, você encurta o que sobe e você comprou aquele que desceu e é uma estratégia de negociação neutra no mercado. De qualquer forma, mais do que vamos fazer aqui é trabalhar em como, pelo menos, calculamos a correlação e a covariância e, a partir daí, você pode fazer o que quiser com esses dados. Então, primeiro de tudo, vamos limpar essa informação existente até o urllib.request. E agora precisamos pegar alguns dados do Quandl que vamos usar. Então, primeiro vamos pegar uma taxa de criminalidade. Apenas para o registro você pode criar uma conta e você recebe uma tonelada de chamadas. Eu acho que é mesmo ilimitado, na verdade, se você tiver uma conta. Caso contrário, é como quinhentas chamadas de api por ip por dia Então, apenas mantenha isso em mente. Lá, agora podemos obter o banco de dados de taxa de criminalidade. Estou tentando pensar se são crimes violentos no total. Vamos ver, taxa de criminalidade dos EUA. Estou tentando encontrar o que encontramos antes, foi crime 11 ou algo assim. Sim esta eu penso. Isso vai baixar e vamos apenas clicar com o botão direito do mouse em Copiar Link Address. Então isso será um deles. Sim, esse é o que eu queria. E depois voltaremos para Quandl aqui e vamos em frente e pegarmos Taxa de Emprego nos EUA. E, vamos pegar o anual. Então o USA Taxa de Emprego anual. Nós vamos baixar isso. Pegue o link para isso. Csv. [NOISE] Em seguida, vamos pegar o rendimento dos EUA. E, vamos ver renda alta dos EUA, renda pessoal. Vamos ver o que estou procurando, acho que vamos fazer, poderíamos fazer renda pessoal. Eu só estou tentando ver qual deles podemos chegar aqui, vamos fazer uma renda pessoal. É um conjunto de dados premium, aguarde. Vamos clicar gratuitamente aqui. Jerks. Não é isso, é estranho, eu escolhi por que você ainda está me mostrando premium, trolls. O que estamos procurando, estou procurando uma renda muito específica, geralmente você pode encontrar um que está certo. Aqui está o que eu quero. Então, digite a renda familiar média e vamos acompanhar o crescimento médio da renda familiar por grupo de renda. Nós vamos pegar esse. E sempre que você quiser aparar qualquer coisa que puder aparar, descendo até aqui. E você pode definir isso para ser o que você quiser. Vamos defini-lo para você apenas começar 1980 ou algo assim. E quando formos fazer o download, vamos dividi-lo para isso. Portanto, copie esse link e ele deverá ser anexado ao final desse link. Sim, o corte e, finalmente, queremos o PIB. Então, o PIB dos EUA. Faça o seu próprio se você é de um país diferente. Sinta-se à vontade para usar um país diferente dos EUA para todos esses PIB. Eu estou tentando encontrar PIB per, vamos ver, PIB [inaudível] per capita a preços correntes e, em seguida, a preços constantes. Nós vamos fazer isso, eu acho. Eu estava esperando que isso significaria obter PIB per, acho que faremos per capita aqui a preços correntes. Isso vai fazer por agora. E então iremos em Download> CSV, clique com o botão direito do mouse em Copiar endereço do link. Então, vamos salvar tudo isso. OK. Agora, vamos criar isso, uma função como vimos antes para coletar todos esses dados. Então, vamos definir pickle_data, na verdade nenhum parâmetro lá. E então, nós vamos ler cada um desses URLs e salvar o pickle e tudo mais, então nós iremos, provavelmente poderíamos percorrer a URL, mas o nome do arquivo causaria algum problema, então nós vamos apenas faça isso. Nós vamos dizer read = urllib.request.urlopen, assim e então nós queremos Coloque esse link lá, então faremos isso primeiro. Eu preciso citar isso. Então df = pd.read_csv (read), e então nós iremos em frente e imprimiremos df.head, e então faremos df.to_pickle. E o picles que estamos enviando é literalmente chamado df.pickle. Ok, então queremos que isso seja feito e queremos fazer isso em todos os links, então copie, cole, cole e cole. E este foi nosso segundo link, então vamos colocar isso aqui. Terceiro link, copie, cole e copie e cole o quarto link. E nós queremos que isso seja DF2, três, depois quatro. Isso deve ser bom o suficiente, e agora o que vamos fazer e rapidamente coletar os dados, salvá-los e executá-los, espero. Aqui vamos nós. Pode demorar um segundo para executar todos esses dados contra o Candor. Ok, lá vamos nós, você deve agora ter um df.pickle, df2.pickle, df3.pcikle, df4.pickle. Então, se eu descer aqui, aqui vamos nós. Estes são os arquivos que você deveria ter, não aquele. Ok, então agora que temos isso, estamos prontos para continuar. A primeira coisa que queremos fazer é, agora precisamos ler esses picles. Então, vamos criar algum espaço aqui, para que todos possam ver. Agora eu vou dizer df = pd.read_pickle e estavam lendo df.pickle e então vamos multiplicar isso novamente, dois, três quatro. E whoops, deve ser dois, dois, três, quatro e, em seguida, novamente, dois, três, quatro Então, nós os trazemos e agora podemos fazer uma correlação simples. Então, como uma correlação muito simples seria print (df3.corr ()). E isso é literalmente e você pode obter a correlação lá. Também vamos parar de decapagem aqui. Nós não precisamos repicar a cada vez, apenas uma vez vai fazer. Salve e execute isso. E essa seria a correlação para df3 então basicamente essa é uma tabela de correlação para comparar movimento para as várias classes de renda aqui. Então o quinto direito da direita sempre se move em uma correlação perfeita, certo? Segundo e segundo claro. Mas então podemos comparar como a quinta parte inferior se move em relação ao segundo quinto. Certo? Então, bem perto. E quanto ao quinto do meio? Não como fechar. Como sobre o quarto quinto? E não o, é um pouco mais longe, e depois o quinto superior, ele se move ainda mais longe, então podemos ver que há uma grande diferença lá. Então podemos dizer, bem, como é que o quinto movimento se move em relação ao quinto inferior? Bem, deve ser exatamente o mesmo valor, certo? Então podemos continuar e ver os quintos movimentos em cerca de 90% ou 91% de correlação. Então, podemos continuar, então criar uma tabela de correlação como essa é realmente muito simples. Outro, qual deles foi o crime? Vamos ver, sim, então o crime foi o primeiro. Então poderíamos imprimir o df.corr e obter uma tabela de correlação para a taxa de criminalidade também. Agora, esta é uma mesa enorme, por isso ocupa muito espaço e tem colunas que são realmente longas, mas podemos ver como a taxa de roubo de furto à taxa de criminalidade violenta. Eles são altamente correlacionados. Outro que é interessante é a correlação negativa absoluta da população. É quase uma correlação negativa perfeita. Então, entre este vídeo e o próximo vídeo, pense sobre o que você realmente está causando? De qualquer forma, vamos continuar aqui. Vamos falar sobre co-variantes e correlação. Nós vamos continuar aqui no próximo tutorial, então fiquem ligados para isso. Obrigado por assistir

7.7 Correlação e Covariância parte 2

Olá pessoal, o que está acontecendo? Bem-vindo à parte sete da seção sete do nosso Python com pandas para a série de tutoriais de análise de dados. Nesta parte, vamos construir a última parte em que construímos esses quadros de dados, extraímos esses dados, coletamos esses dados e, agora, estamos acessando os dados em pickled e, em seguida, mostramos como para fazer correlação em um único quadro de dados. Mas então nossa curiosidade é realmente combinar todos esses quadros de dados. Então, levantando o que temos até agora, uma coisa que eu gostaria de mencionar que eu disse que eu ia falar é que um dos eventos mais altamente correlacionados é a comparação de População Para um monte desses crimes. Não importa o que é a população é altamente correlacionada, especialmente aqui. Então, taxa de roubo de furto, quero dizer isso é -985, quero dizer que é enorme. Então, a questão é quando você usa correlação e covariância, tenho certeza que todos já ouviram muitas vezes na escola, mas é sempre bom reiterar que a correlação não é causa. Assim, no caso da população e dessa correlação extremamente negativa, é provável que não tenha relação alguma com áreas mais densamente povoadas que tendem a ter taxas de criminalidade mais altas. Mas o que está acontecendo aqui é que é apenas o plano de que a população dos Estados Unidos da América tem subido o tempo todo, e nossos procedimentos e práticas de policiamento, e tudo isso ajudou na taxa de criminalidade e isso se foi. ao longo do tempo. Poderíamos também argumentar que talvez a notificação de crimes tenha mudado e talvez seja por isso que está diminuindo, mas a taxa de criminalidade está em constante declínio. Todo este tempo, e a população tem sido um aumento constante. Então, por causa disso, temos esse alto grau de correlação negativa, mas isso não significa necessariamente que quanto mais população os Estados Unidos têm, menos crime ela tem. Isso definitivamente não é verdade. Estas são apenas duas tendências negativamente correlacionadas, basicamente, mas isso não significa muito. Você não pode realmente extrapolar muito significado lá. Seguindo em frente. Uma das coisas que podemos fazer é que também podemos fazer covariância, para que possamos imprimir df.cove E isso é para covariância. E o que a covariância vai fazer é basicamente quando alguém tende a se mover em uma direção, quanta tendência tem outra para se mover nessa direção? Então isso soa muito vago e isso é porque é muito vago. Então a correlação é limitada, certo? Ele passará de um negativo para positivo. Covariância, por outro lado, é completamente ilimitada. Não está normalizado. Então você pode ter 100 covariâncias positivas e 20 covariâncias negativas. Você pode ter estes coisas e também, se seus dados não forem normalizados, a covariância será bastante louca, e outro exemplo é se você medir, se tiver conjuntos de dados medidos em polegadas, e executar covariância nas medidas de polegadas, e então você alterna para talvez pés, e você executa mais covariância, você obterá um resultado diferente. Você ainda deve ter covariância positiva ou negativa, correta, a menos que seja realmente muito próxima como 0,00001 ou algo assim. Mas aqui estamos ficando como dez covariâncias antes, e você com polegadas e você converte em pés. Você provavelmente ainda obterá alta covariância, mas não será 10. Você pode ganhar 30, você pode ganhar cinco ou algo assim. De qualquer forma, vamos desenhar uma covariância realmente rápida, e isso será apenas em seu quadro de dados original. Então, como você pode ver, temos alguns números muito variados. Isto é só porque eles não estão na mesma escala variável. Uma coisa que as pessoas farão é que elas vão fazer correlação e então aplicar a covariância à correlação. Então você poderia fazer algo assim também. Agora, a próxima coisa que quero que façamos é mostrar como combinar todos esses quadros de dados e, em seguida, fazer uma tabela de correlação, digamos, de todos esses dados. Então, isso vai nos obrigar a fazer algumas coisas primeiro. Portanto, alguns desses quadros de dados, por exemplo, o quadro de dados original tem a hora ou as datas nesta coluna de ano capital. E é o mesmo com df3 e df4, mas o df2 tem uma coluna de data. Então, precisamos alterar esse 1 até o momento. A outra desvantagem é o df2 e o df4 na verdade não tem títulos de colunas apropriados. Eles são apenas chamados valores. Então, precisamos renomeá-los para serem úteis, então, quando os combinamos, não temos apenas duas colunas aleatórias sendo chamadas de valor, e não temos idéia do que elas são. Então, primeiro, vamos lidar com df2 e df4. Então, deixe-me comentar isso. E deixe-me imprimir isso. Então, imprima df2.head. E então nós vamos imprimir o df4.head. Só para que vocês possam ver o que quero dizer. Então, isso tem datas e depois valor aqui. Bem, nós realmente não queremos. Primeiro de tudo, na verdade, ambos estão dizendo data e valor, então realmente. Vamos imprimir df.head. [SOUND] Eu provavelmente poderia simplesmente digitar isso. Nesse ano e depois no df3, vamos digitá-lo aqui e dizer, então acho que dois deles têm datas. Então imprima df3.head. E este tem o segundo ano. Então, basicamente, temos que fazer uma escolha. Mas nós vamos convertê-los todos para o ano eu acho. É o mais razoável. Então, uma coisa que podemos fazer é se você quiser alterar todas as colunas em um quadro de dados. Só vou apagar tudo isso porque não precisamos disso agora Ou você pode fazer algo assim. Você pode dizer df2.columns, e isso permite que você renomeie todas as colunas. Então, vamos dizer que as colunas que queremos aqui vão ser o Ano com um y maiúsculo e, em seguida, o df2 é para a taxa de emprego, então faríamos a Taxa de Emprego. E vamos fazer um sublinhado. Você deve sempre tê-los, dessa forma você pode usar as coisas de ponto também, como, eu quero chamá-lo de notação de ponto, mas isso não é verdade. Você pode tratá-lo como um atributo. Então, isso renomeia as colunas, todas as colunas. Bem, e se você quiser apenas renomear uma ou duas colunas, o que você faria seria DF df4 = df4.rename, e então você poderia renomear as coisas. E então vamos apenas dizer que queremos renomear várias colunas. E então aqui, você coloca um dicionário. E isso será apenas um dicionário de valores. Nós queremos mudar. Então, as colunas precisam se igualar ao dicionário de qualquer maneira. E esse aqui tinha Data, e nós queremos mudar isso para Ano. E também aparentemente tinha Value, e queremos mudar para dizer algo útil. E esse era o PIB per capita, PIB_Cap. Ok, então isso deve renomear o df2.head. Opa, vamos imprimir isso. Imprima (df2.head ()) e depois imprimiremos df4.head, e agora todos eles têm o mesmo ano, legal. Então agora que temos todo esse mesmo tipo de coisa normalizada, agora o que vamos fazer é definir todos os índices do dataframe para o ano. Então, para fazer isso, vamos apenas fazer df.set_index e vamos definir que seja a coluna O ano, e depois vamos dizer inplace = True. Bastante fácil. Copie, cole, cole, cole e depois 2, 3, 4. Fácil, fácil. Agora, queremos unir todos esses quadros de dados para que façamos algo assim. Nós diríamos que talvez tenha se juntado. E nós diríamos que juntar é igual a df.join. E então aqui eu mostrei a você como nós acabamos de nos unir como um quadro de dados, mas você pode realmente juntar uma lista de quadros de dados desde o início. Então, vamos dizer que o df quer juntar o df2, o df3 e o df4, porque é isso que queremos fazer. Então, o que podemos fazer é imprimir o join.head. E podemos comentar isso porque não precisamos mais deles, salve e execute isso e agora temos esse todo é apenas um grande quadro de dados com informações de renda e taxas de criminalidade, renda e em algum lugar aqui, temos o taxa de emprego e, em seguida, em algum lugar aqui, devemos também ter, eu não estou vendo isso, mas talvez eu seja cego. Nós também devemos ter Sim, lá vamos nós. PIB per capita, legal. Então agora nós fazemos. Uma coisa que podemos querer fazer é apenas fazer um dropna, joined.dropna () Inplace = True. Legal, vamos fazer isso, incrível. Agora nós não temos isso, e então, finalmente, o que nós faríamos é que você poderia imprimir o join.head se você quisesse, mas nós podemos imprimir a correlação join.correlation ou corr. E então agora você pode ver a correlação para todas essas coisas, assim como o PIB per capita Correlacionar com vários crimes. Bem, não é surpresa que quanto mais dinheiro as pessoas ganham, melhor é o status socioeconômico de todos, e, provavelmente, as pessoas mais confortáveis ​​são, e elas não precisam cometer crimes Curiosamente, quanto mais dinheiro você tem , este não é tão correlacionado como roubo. Então, suponho que, se outras pessoas estão tendo mais dinheiro, talvez estejam mais propensas a serem assaltadas. Quem sabe? Então você tem renda, como as mudanças de renda refletem crimes talvez violentos. Não muito altamente correlacionado, mas então, se olharmos para o quinto meio, suas mudanças de renda são Mais ainda, altamente correlacionado, e então poderíamos olhar para o quinto inferior. Bem, essas mudanças são muito correlacionadas, o que é interessante porque você pensaria como a quinta renda inferior subiu. Que o crime violento iria diminuir talvez. Então isso é meio interessante. porque a maioria das pessoas pensaria, oh, as pessoas pobres cometem todos os crimes. Mas mesmo assim. Então você quase esperaria que isso fosse negativamente correlacionado, certo? Onde a quinta renda inferior aumenta, o crime violento diminui, ou vice-versa. Mas nós não estamos realmente vendo isso. Estamos quase vendo, vamos ver onde é o quinto mais alto Sim, realmente os 5% melhores. Isso é o mais próximo de zero, na verdade. Então, é interessante que eles sejam completamente não relacionados. Mas de qualquer maneira, sim, você poderia passar por aqui e olhar as correlações de basicamente todas essas comparações. Eu acho que o crime ao crime não produz muito material interessante. A maioria disso é meio que movida em conjunto. Mas muitas dessas correlações são legais de se ver e apenas ver. Mas é assim que você executaria tabelas de correlação em um conjunto de quadros de dados e também reuniria esses quadros de dados. Agora, o próximo tutorial, vamos mudar um pouco o assunto. Vamos falar sobre como podemos mapear funções personalizadas que construímos Para um quadro de dados de pandas, o qual acabaremos usando um pouco mais adiante nesta série de tutoriais. Mas é uma função super útil para ser capaz de fazer, porque se algo talvez não esteja disponível para você em pandas, você pode escrever, geralmente é uma função realmente rápida que apenas lida com um problema para você, mas você pode escrever essas funções E, em seguida, pode ser aplicado a toda a coluna em um quadro de dados. Então, de qualquer forma, é sobre isso que vamos falar no próximo tutorial. Então fique ligado para isso.

7.8 Mapeando funções customizadas

Olá pessoal, e bem vindos a parte oito da seção sete do nosso tutorial de análise de dados do Python com pandas Series. Neste tutorial, falaremos sobre como escrever uma função personalizada que pode ser mapeada para uma coluna no quadro de dados. Então, esse é o jeito do panda, como enrolar uma folha de alface totalmente personalizada. Nossos pandas usam até mesmo se o que nós queremos fazer não é incluído em pandas ou talvez não está no modo. Às vezes há. pode estar lá e eu nem percebi isso. Ou talvez você possa pensar apenas na maneira mais clara de fazer alguma coisa. Há muitas razões. Mas geralmente não há uma função incorporada para fazer o que você quer fazer. Então você pode escrever o seu próprio, e desta forma você não tem que mover seus dados de pandas apenas para executar alguma operação e movê-la de volta. Então, o que vamos fazer aqui é rever a renda por segmento. E assim, temos esses dados sobre os segmentos de renda por ajustes, bem como alguns pontos percentuais, e por enquanto, pelo menos inicialmente, vamos nos concentrar no 5º lugar, e no 5º lugar, digamos. Então, muitas vezes, as pessoas dirão, pelo menos nos Estados Unidos, elas comparam a classe alta à classe média, ou a classe alta à classe baixa, e dizem, ei, a diferença de renda está ficando maior. Mas, quase sempre, as pessoas estão se concentrando nos números do dólar, certo, da lacuna, e o valor do dólar é completamente explicado com uma educação básica em estatística. Certo? Então, se uma pessoa tem $ 10.000, qualquer outra pessoa tem cem mil dólares. E digamos que estes são seus um ano. Se ambos crescerem em dez por cento, a primeira pessoa ganhou apenas dez mil. Então eles têm onze mil por ano agora. E a pessoa tem cento e dez mil porque cresceu em dez mil. Então, o gap do dólar entre então aumentou, mas este foi um percentual justo de aumento. Você poderia argumentar que esta é uma bandeira vermelha se você continuar nesse caminho, ambas as pessoas devem crescer exponencialmente com base nesses ganhos, então a preocupação real é quando a taxa de crescimento. Em porcentagem é diferente. Então não vamos comparar a diferença em dólares, mas comparar a diferença em porcentagem para obter uma compreensão realmente melhor sobre a distribuição de renda e se a diferença está realmente se ampliando ou não. Então, para isso, criaremos nossa própria pequena função que calcula a porcentagem. Obviamente, não precisamos disso, isso pode ser feito em pandas. Mas vamos usar isso como exemplo. Então, vamos mapear nossos resultados porque facilita a leitura e visualização de nós mesmos. Portanto, também importaremos matplotlib.pyplot como plt e do estilo de importação matplotlib. Agora vamos fazer style.use E nós usamos fivethirtyeight como de costume. Então, as primeiras coisas primeiro. O que nós queremos fazer é que vamos trazer, vamos trazer nossa função, ou o nosso quadro de dados. Então o df será = pd.read_pickle E o pickle que nós salvamos o material de receita foi df3.pickle, então nós vamos apenas carregar aquele aqui. Agora, vamos dizer df.set_index para a coluna year, e nós direi apenas inplace = True Então, o que queremos fazer é classificar o índice de acordo com a ordem cronológica. Caso contrário, o mais recente é o primeiro e, em seguida, representa graficamente o gráfico ao contrário e parece tolo. Então o df.sort_index também estaria computando uma mudança percentual no sentido inverso. Então, se o índice de classificação no lugar é igual a verdadeiro E agora, neste ponto, vamos imprimir {df.head}. Vamos ver onde estamos no momento. Certifique-se de que estamos bem. Legal. Então, começamos em 1980 e nos movemos cronologicamente, e temos todas as informações aqui. Então, a próxima coisa que queremos fazer é dizer que queremos fazer algo assim. Nós vamos definir uma nova coluna. Nós vamos dizer df e nós vamos dizer pct por cento Diff_bot_5_vs_Top 5 ok. Então, esse será o nome da nossa coluna. E nós vamos dizer que isso é =. E o que queremos fazer é querermos executar uma função contra esses dois valores. Então, digamos que temos uma função e vamos fazer essa função primeiro. Então, vamos dizer definir diff de sublinhado PCT. E para calcular um diff percentual, é novo menos o antigo dividido pelos tempos antigos 100. Então nós Nós temos novo velho, certo? Então, vamos ter valor um e valor dois. Então, para calcular a porcentagem, seria igual a v2, então esse é o novo, menos o antigo, o v1. Novo menos o antigo dividido pelo antigo E depois vezes 100.0. E então, só para ter certeza de que tudo está calculado como esperado, saberíamos que tudo isso é multiplicado por cem. E então também é novo menos o antigo. Em seguida, dividiu os velhos tempos cem. E, finalmente, voltar pct Então esta é a nossa função de alteração percentual. Apenas calcula a variação percentual entre dois valores. É isso aí. Agora, como aplicamos isso a uma coluna inteira? Bem, primeiro Normalmente, você faria algo assim, faria o que é chamado de mapeamento. Mas, como estamos no Python 3, também precisamos listar o mapa. Então, antes de chegarmos lá, vamos escrever o que estamos planejando fazer. Então, aqui, gostaríamos de executar {pct_diff} Vírgula e, em seguida, colocaremos todos os valores pelos quais queremos passar. Agora temos dois valores que seriam df no quinto inferior assim. E então o outro seria df e depois o quinto superior. Então, esse é o valor um e o valor dois. Então este é o novo Vamos ver. Não. Este será o ult, então este será o menor. Então, a mudança percentual deve ser, em teoria, positiva, mas vamos ver. Então, ou a diferença percentual, desculpe. Eu tenho dito variação percentual eu acho, mas pelo menos escrevendo diferença percentual. O que estamos procurando é a diferença percentual entre esses dois grupos. Então, vamos calcular essa diferença. Deve sempre ser positivo porque somos. Comparando, basicamente, qual é a diferença percentual de baixo para cima. Agora, o que vamos fazer é, vamos ver, porcentagem diff, e então a maneira que nós aplicamos isso é com, nós mapeamos isso, e então também fazemos uma lista. Então nós listamos o mapa. Portanto, list map, o nome da função e, em seguida, todos os parâmetros que serão transmitidos. Então, parece um pouco diferente de quando você normalmente


{{detail.h1_tag}}

{{detail.display_name}}
{{author.author_name}} {{author.author_name}}

{{author.author_name}}

{{detail.full_name}}

Published on {{detail.created_at| date}} {{detail.duration}}

  • {{detail.date}}
  • Views {{detail.downloads}}
  • {{detail.time}} {{detail.time_zone_code}}

Registrants:{{detail.downloads}}

Downloaded:{{detail.downloads}}

About the {{detail.about_title && detail.about_title != null ? detail.about_title : 'On-Demand Webinar'}}

About the {{detail.about_title && detail.about_title != null ? detail.about_title : 'Webinar'}}

Hosted By

Profile

{{author.author_name}}

{{author.author_name}}

{{author.about_author}}

About the {{detail.about_title && detail.about_title != null ? detail.about_title : 'Ebook' }}

About the {{detail.about_title && detail.about_title != null ? detail.about_title : 'Ebook' }}

View {{detail.about_title && detail.about_title != null ? detail.about_title : 'On-Demand Webinar'}}

Webcast

Register Now!

Download the {{detail.about_title && detail.about_title != null ? detail.about_title : 'Ebook'}}!

First Name*
Last Name*
Email*
Company*
Phone Number*

View {{detail.about_title && detail.about_title != null ? detail.about_title : 'On-Demand Webinar'}}

Webcast

Register Now!

{{detail.about_title && detail.about_title != null ? detail.about_title : 'Webinar'}} Expired

Download the {{detail.about_title && detail.about_title != null ? detail.about_title : 'Ebook'}}

Email
{{ queryPhoneCode }}
Phone Number

Show full article video

Name Date Place
{{classRoomData.Date}} {{classRoomData.Place}} View Details

About the Author

{{detail.author_biography}}

About the Author

{{author.about_author}}