7 maneiras de manipular DataFrames em Pandas

Pandas é uma biblioteca de análise de dados Python muito poderosa e versátil que agiliza o processo de análise e exploração de dados.

Neste artigo cobriremos 7 maneiras comuns de editar ou manipular um dataframe.

Um DataFrame é a estrutura de dados central dos Pandas. Para dominar Pandas, devemos ser capazes de brincar com DataFrames de forma fluida. Neste post, vamos percorrer diferentes maneiras de manipulá-los ou editá-los.

Vamos começar com a importação de NumPy e Pandas e a criação de um dataframe de amostra.

import numpy as np
import pandas as pd
values = np.random.randint(10, size = (3,7))df = pd.DataFrame(values, columns = list('ABCDEFG'))df.insert(0, 'category', ['cat1','cat2','cat3'])df

A primeira maneira de manipular vamos mencionar é a função melt que converte amplos dataframes (alto número de colunas) em estreitas.

Alguns DataFrames são estruturados de forma que medições ou variáveis consecutivas sejam representadas como colunas.

Em alguns casos, representar essas colunas como linhas pode se encaixar melhor em nossa tarefa

df_melted = pd.melt(df, id_vars='category')
df_melted.head()
df_melted = pd.melt(df, id_vars=’category’)

A coluna especificada com o parâmetro id_vars permanece a mesma e as outras colunas estão representadas sob as colunas variável e de valor.

A segunda maneira é a função de pilha que aumenta o nível do índice.

  • Se o dataframe tiver um índice de coluna simples, stack retorna uma série cujos índices consistem em pares de colunas de linha de dataframe original.
  • Se o dataframe tiver índice de vários níveis, a pilha aumentará o nível do índice.

Considere o seguinte dataframe:

stackdf_stacked = df_measurements.stack().to_frame()
df_stacked[:6]

A função stack, neste caso, retorna um objeto Série, mas o convertemos em um dataframe usando a função to_frame.

A função unstack, como o nome indica, inverte o funcionamento da função pilha.

 unstackdf_stacked.unstack()

Adicionar ou dropar colunas é provavelmente a manipulação que fazemos mais. Vamos adicionar uma nova coluna e dropar algumas das já existentes.

#4 add or drop 
columnsdf['city'] = ['Rome','Madrid','Houston']
df.drop(['E','F','G'], axis=1, inplace=True)
df

Criamos uma coluna com uma lista de paíes. A série Pandas ou a matriz NumPy também podem ser usadas para criar uma coluna.

Para soltar colunas, além do nome das colunas, os parâmetros do eixo devem ser definidos como 1. O parâmetro inplace está definido como True, a fim de salvar as alterações.

Novas colunas são adicionadas no final do dataframe por padrão. Se você quiser que as novas colunas sejam colocadas em um local específico, você deve usar a função de inserção.

#5 insertdf.insert(0, 'first_column', [4,2,5])
df

Também podemos querer adicionar ou dropar linhas.

A função .append() pode ser usada para adicionar novas linhas.

#6 add or drop rows
new_row = {'A':4, 'B':2, 'C':5, 'D':4, 'city':'Berlin'}
df = df.append(new_row, ignore_index=True)
df

Podemos deixar cair uma vez como soltar colunas. A única mudança é o valor do parâmetro do eixo.

df.drop([3], axis=0, inplace=True)
df

Another modification on dataframes can be achieved by the pivot_table function. Consider the following dataframe with 30 rows:

import randomA = np.random.randint(10, size=30)
B = np.random.randint(10, size=30)
city = random.sample(['Rome', 'Houston', 'Berlin']*10, 30)
cat = random.sample(['cat1', 'cat2', 'cat3']*10 ,30)
df = pd.DataFrame({'A':A, 'B':B, 'city':city, 'cat':cat})
df.head()

A função pivot_table também pode ser considerada como uma maneira de olhar para o dataframe de uma perspectiva diferente. É usado para explorar as relações entre as variáveis, permitindo que eles apresentem dados em diferentes formatos.

#7 pivot_tabledf.pivot_table(index='cat', columns='city', aggfunc='mean')

O DataFrame retornado contém os valores médios para cada par de gatos da cidade.

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