Manipulando colunas de um DataFrame com Pandas

Fonte: Pandas 1.x CookBook practical recipes for scientific computing, time series analysis, and exploratory data analysis using Python

Podemos selecionar uma única coluna passando o nome da coluna para o operador de índice de um DataFrame. Contudo, muitas vezes é necessário focar em um subconjunto do conjunto de dados de trabalho atual, que é realizado selecionando várias colunas.

Neste passo a passo, todas as colunas do “ator” e “diretor” serão selecionadas a partir do conjunto de dados “filme”.

Como fazer isso…

Leia o conjunto de dados do filme e passe em uma lista das colunas desejadas para o operador de indexação:

2. Há casos em que uma coluna de um DataFrame precisa ser selecionada. Operações cóm Índice pode retornar uma série ou um DataFrame.

  • Se passarmos em uma lista [[]] com um único item, receberemos de volta um DataFrame.
  • Se passarmos em apenas uma sequência [] com o nome da coluna, teremos uma série de volta:

3. Também podemos usar .loc para puxar uma coluna pelo nome. Como esta operação de índice requer que passemos em uma linha seletora primeiro, usaremos um cólon (:) para indicar uma fatia que seleciona todas as linhas. Isso também pode retornar um DataFrame ou uma série:

O Índice do DataFrame é muito flexível e capaz de aceitar vários objetos diferentes. Se uma string for passada, ela retornará uma série unidimensional. Se uma lista for passada ao operador de indexação, ele retornará um DataFrame de todas as colunas da lista na ordem especificada.

O passo 2 mostra como selecionar uma única coluna como dataFrame e como uma série. Normalmente, uma única coluna é selecionada com uma string, resultando em uma série. Quando um DataFrame for desejado, coloque o nome da coluna em uma lista [] de elementos únicos.

O passo 3 mostra como usar o atributo loc para extrair uma série ou um DataFrame.

Passar uma longa lista dentro do operador de indexação pode causar problemas de legibilidade. Para ajudar com isso, você pode salvar todos os nomes de suas colunas em uma variável de lista primeiro. O código a seguir alcança o mesmo resultado da etapa 1:

Uma das exceções mais comuns levantadas ao trabalhar com Pandas é KeyError. Esse erro é comumente levantado sempre que uma seleção de várias colunas é tentada sem o uso de uma lista []:

Selecionando colunas com métodos

Embora a seleção de colunas geralmente seja feita com o operador de indexação, existem alguns métodos do DataFrame que facilitam sua seleção de forma alternativa. Os métodos .select_dtypes e .filter são dois métodos úteis para fazer isso.

Se você quiser selecionar por tipo, você precisa estar familiarizado com os tipos de dados Pandas.

Como fazer isso…

  1. Leia no conjunto de dados do filme. Encurte os nomes das colunas para exibição. Use o método .get_dtype_counts para produzir o número de colunas com cada tipo de dados específico:

2. Use o método .select_dtypes para selecionar apenas as colunas de inteiros:

3. Se você quiser selecionar todas as colunas numéricas, você pode passar o número de sequência para o parâmetro incluir:

4. Se quiséssemos colunas de inteiros e strings, poderíamos fazer o seguinte:

5. Para excluir apenas colunas de ponto flutuante, faça o seguinte:

6. Um método alternativo para selecionar colunas é com o método .filter. Este método é flexível e pesquisa nomes de colunas (ou etiquetas de índice) com base em qual parâmetro é usado. Aqui, usamos o parâmetro de curtida para procurar todas as colunas do Facebook ou os nomes que contêm a sequência exata, fb. O parâmetro semelhante é verificar se há substrings em nomes de colunas:

7. O método .filter tem mais truques (ou parâmetros) na manga. Se você usar os parâmetros de itens, você pode passar em uma lista de nomes de coluna:

8. O método .filter permite que as colunas sejam pesquisadas com expressões regulares usando o parâmetro regex. Aqui, buscamos por todas as colunas que tenham um dígito em algum lugar em seu nome:

O parâmetro like pega uma sequência e tenta encontrar todos os nomes das colunas que contêm essa sequência exata em algum lugar do nome. Para obter mais flexibilidade, você pode usar o parâmetro regex em vez de selecionar nomes de coluna através de uma expressão regular. Esta expressão regular em particular, r’\d’, representa todos os dígitos de zero a nove e corresponde a qualquer sequência com pelo menos um único dígito nele.

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