20 truques úteis em Pandas

métodos em pandas para usar em sua rotina de Ciência de Dados

Photo by Erick Mclean from Pexels

Pandas é a biblioteca para a organização, limpeza e exibição de dados que se tornou o padrão da indústria nos últimos 10 anos. Embora Pandas seja popular, e muito frequentemente usado pela maioria dos cientistas trabalhando com Python, ele também ainda é uma biblioteca bastante profunda com diversos de recursos.

Aqui veremos 20 métodos da biblioteca Pandas que ajudarão qualquer cientista de dados em sua jornada.

dataframes

Os dataframes são a característica central da biblioteca Pandas. Embora dataframes sejam uma grande funcionalidade por conta própria, sem grandes funções e operações para acompanhar eles acabam sendo dicionários glorificados.

Felizmente, o Pandas tem você coberto com essas maneiras realmente legais de explorar seus dados, limpar seus dados e ajustar seus dados. Para todos os exemplos abaixo, vou trabalhar com este quadro de dados:

dados meteorológicos históricos de datas em 1910 — 2006

1. df.describe( )

Uma das características mais subestimadas em Pandas é uma função simples chamada describe(). Usar a função describe em um quadro de dados produz um resultado estatístico que lhe dirá tudo o que você precisa saber sobre os valores de cada coluna de forma independente.

Esta é uma ótima maneira de entender onde a maioria dos dados em uma determinada coluna fica sem apenas precisar considerar a média.

df.describe()

2. df.groupby()

A função groupby() é uma função para reorganizar suas observações com base em valores categóricos ou ranking contínuos por valor numérico.

df.groupby(['Temperature (C)']).mean()

3. df.stack()

A função de pilha pode ser usada para retornar um dataframe de dados e um tipo de série com mais níveis internos. Os novos níveis mais internos são criados por pivotar o quadro de dados.

df.stack([0])

Stack realmente não parece ter causado algum efeito. Esta função é aquela que só pode ser sentida sempre que a tabela é mais dinâmica.

4. df.apply( )

A função apply é usada para aplicar um código aritmético ou lógico em todo um quadro de dados ou tipo de série usando uma função Python.

df["Temperature (C)"].apply(np.sqrt)

5. df.info

A função info pode ser usada em um quadro de dados para fornecer informações sobre o dataframe geralmente relacionados ao desempenho mais do que estatísticas.

df.info()

6. df.query()

A consulta é uma função Pandas que permite que uma máscara condicional seja aplicada em todo um quadro de dados. A única diferença significativa entre consulta e uma máscara condicional típica é que a função de consulta pode pegar uma sequência que será interpretada como uma instrução condicional, enquanto uma máscara condicional irá mascarar os dados com booleanos e, em seguida, retornar as condições que são verdadeiras.

df.query('Humidity < .89')

7. df.cumsum()

A função cumsum pode ser usada para obter a soma cumulativa de ambos os quadros de dados e tipos de séries Pandas. Aqui a soma cumulativa é aplicada a um recurso do DataFrame

df.cumsum()

8. df [máscara condicional]

Aqui temos a capacidade de mascarar o DataFrame com condições. Embora haja uma maneira de fazer isso com o filter().

Em primeiro lugar, você precisa chegar a uma condição:

our_mask = df["Wind Speed (km/h)"] < 14

Em seguida, aplicaremos esta máscara simplesmente definindo algo igual aos booleanos como um índice:

seconddf = df[our_mask]

Agora, nosso quadro de dados não contém velocidades de vento maiores ou iguais a 14:

9. df.melt()

Melt é o oposto da função pivô, que colocará dados em um formato lateral. Isso é útil se você quiser mudar o que serão as observações e quais serão os recursos.

df = df.melt()

10. df.explode()

Você já encontrou dados que se parecem com isso por alguma razão? :

Felizmente, podemos simplesmente executar .explode() em nosso quadro de dados para corrigir isso apontando a coluna B.

data.explode("B")

11. df.nunique()

Temos um DataFrame com muitas categorias e queremos abordar uma solução para um problema de classificação. A única questão é que não queremos usar um modelo que será propenso a superajuste se tivermos poucas categorias.

Felizmente, a solução para este problema é realmente simples — uma contagem de todos os valores únicos é necessária.

df.nunique()

Isso fornecerá uma lista abrangente de todos os recursos em nosso quadro de dados e suas contagens de valor únicas correspondentes.

12. df.infer_objects

Outra coisa que você pode encontrar ao trabalhar com dados sujos são os tipos que inicialmente são presumidos ser algo que eles não são. A função infer_objects leva um palpite educado sobre qual tipo de dado cada coluna deve ser e define toda a série para esse tipo.

df.infer_objects()

13. df.memory_usage

Embora tenhamos uma ideia ampla do uso da memória em nosso DataFrame, usando a função memory_usage nos permitirá descobrir exatamente quais colunas estão consumindo a maior parte de nossa memória.

df.memory_usage()

14. df.select_dtypes

A função select_dtypes pode ser usada para extrair certas colunas de um quadro de dados dependendo do tipo. Um exemplo seria se desejássemos aplicar np.sqrt() em todo o quadro de dados, mas só fomos capazes de fazê-lo com uma única série por causa das strings em nosso quadro de dados.

df.select_dtypes(float).apply(np.sqrt)

15. df.iterrows()

A função iterrows () é um tipo de gerador simples que irá gerar uma nova matriz de iterações — uma para cada coluna. Isso é ótimo se você precisar comprimir todas as suas linhas em um único objeto iterável:

rowlist = df.iterrows()

pandas profiling

É difícil mencionar a análise de dados do Pandas sem falar sobre pandas profilings. Embora vá exigir outra biblioteca, é certamente uma das maiores ferramentas que os cientistas de dados Pythonic têm à sua disposição para uma rápida visão geral dos dados com uma única chamada de função.

df.profile_report()

Isso fornecerá um exame minucioso de seus dados em um folheto HTML conveniente que é fácil de digerir e perfeitamente compatível com iPython!

series

Ao contrário das características de uma lista normal, as Series vem com um monte de opções diferentes que simplesmente não são suportadas em nenhum outro lugar.

series.isin()

A função isin retornará uma máscara condicional que retornará verdadeira se uma determinada observação na série estiver dentro da lista de valores que é chamada. Por exemplo, poderíamos criar uma máscara para saber se cada valor em nossa coluna é de valor “rain”:

df["Precip Type"].isin(["rain"])

.where( )

Onde aplicará uma condição a uma determinada série e valores de retorno que atendam a essa condição. A função onde é praticamente diretamente nomeada após o sql equivalente a este propósito de funções.

df["Summary"].where(df["Summary"] != "Mostly Cloudy")

Loc e ILoc

Se você não está familiarizado com iloc e loc, então você provavelmente deve começar a praticar — porque esses dois são muito importantes! A regra geral é que, e em primeiro lugar, vamos tentar usar iloc em um tipo de série e ver o que temos em troca.

df["Precip Type"].iloc[2]

Estamos recebendo “rain” como retorno aqui porque é o segundo índice em nossa coluna “Precip Type”. Vamos dar outra olhada na cabeça do quadro de dados:

Alternativamente, poderíamos usar loc em vez de iloc para obter um valor com base no rótulo que possui no índice. Considere o seguinte quadro de dados:

data = pd.DataFrame(
{"Age": [25, 35,45]},
index = ["Corgi", "Maltese", "Pug"])

Agora podemos chamar loc em qualquer índice dado e receber todo o conjunto de observação com cada recurso:

data.loc["Corgi"]

Na verdade, não tenho certeza de que tipo de dado isso vai retornar, então estou curioso para verificar que tipo é este, também:

series.rank()

A função de classificação pode ser usada para fornecer classificações numéricas a valores geralmente baseados em sua posição em relação aos valores mínimos e máximos nos dados.

df["Humidity"].rank()

conclusão

Pandas é uma biblioteca incrível para gerenciar e limpar grandes conjuntos de dados. Pandas torna muitas coisas muito mais fáceis que são francamente bastante difíceis em outras línguas. Embora existam muitos pacotes ótimos em outras línguas que buscam realizar tarefas semelhantes, a maioria deles me faz perder as maneiras brilhantes que pandas aborda problemas complicados.

Usando essas funções, é quase garantido que a maioria dos problemas que um cientista pode encontrar pode ser resolvida.

Embora pandas seja uma biblioteca muito aprofundada, é ótimo sempre ter um aviso sobre grandes funções que podem acelerar o seu trabalho.

Obrigado.

Composing a repository of books (i bought), authors (i follow) & blogs (direct ones) for my own understanding.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store