Método Rank do DataFrame Pandas

Beginner

Introdução

Neste laboratório, você aprenderá como usar o método DataFrame.rank() no Pandas para atribuir classificações aos dados em um DataFrame. O método rank() fornece uma classificação numérica de 1 a n ao longo do eixo especificado, que pode ser o eixo do índice ou o eixo da coluna. Isso permite que você determine a classificação dos valores em um DataFrame com base em uma coluna específica.

Dicas para a VM

Após a inicialização da VM, clique no canto superior esquerdo para mudar para a aba Notebook e acessar o Jupyter Notebook para praticar.

Às vezes, pode ser necessário aguardar alguns segundos para que o Jupyter Notebook termine de carregar. A validação das operações não pode ser automatizada devido a limitações no Jupyter Notebook.

Se você enfrentar problemas durante o aprendizado, sinta-se à vontade para perguntar ao Labby. Forneça feedback após a sessão, e resolveremos o problema prontamente para você.

Criar um DataFrame e Classificar uma Coluna

Primeiro, vamos criar um DataFrame e usar o método rank() para atribuir classificações a uma das colunas no DataFrame. Neste exemplo, classificaremos a coluna 'Profit' em ordem crescente.

## Import the pandas library
import pandas as pd

## Create a DataFrame
df = pd.DataFrame({
    'Product_Id': [1001, 1002, 1003, 1004],
    'Product_Name': ['Coffee powder', 'Black pepper', 'rosemary', 'Cardamom'],
    'customer_Name': ['Navya', 'Vindya', 'pooja', 'Sinchana'],
    'ordered_Date': ['16-3-2021', '17-3-2021', '18-3-2021', '18-3-2021'],
    'ship_Date': ['18-3-2021', '19-3-2021', '20-3-2021', '20-3-2021'],
    'Profit': [750, 652.14, 753.8, 900.12]
})

## Use the rank() method to assign ranks to the 'Profit' column
df['ranked_profit'] = df['Profit'].rank()

## Display the DataFrame
df

Classificar uma Coluna em Ordem Decrescente

Em seguida, vamos modificar o exemplo do Passo 1, definindo o parâmetro ascending como False. Isso classificará a coluna em ordem decrescente.

## Import the pandas library
import pandas as pd

## Create a DataFrame
df = pd.DataFrame({
    'Product_Id': [1001, 1002, 1003, 1004],
    'Product_Name': ['Coffee powder', 'Black pepper', 'rosemary', 'Cardamom'],
    'customer_Name': ['Navya', 'Vindya', 'pooja', 'Sinchana'],
    'ordered_Date': ['16-3-2021', '17-3-2021', '18-3-2021', '18-3-2021'],
    'ship_Date': ['18-3-2021', '19-3-2021', '20-3-2021', '20-3-2021'],
    'Profit': [750, 652.14, 753.8, 900.12]
})

## Use the rank() method to assign ranks to the 'Profit' column in descending order
df['ranked_profit'] = df['Profit'].rank(ascending=False)

## Display the DataFrame
df

Classificar uma Coluna com Diferentes Métodos

Se o DataFrame contiver valores duplicados, você pode usar diferentes métodos para classificar a coluna.

  • O método 'average' atribui a classificação média aos valores duplicados.
  • O método 'min' atribui a classificação mais baixa aos valores duplicados.
  • O método 'max' atribui a classificação mais alta aos valores duplicados.
  • O método 'first' atribui a classificação na ordem em que aparecem no DataFrame.
  • O método 'dense' é semelhante a 'min', mas a classificação sempre aumenta em 1 entre os grupos.
## Import the pandas library
import pandas as pd

## Create a DataFrame
df = pd.DataFrame({
    'column_1': [1, 3, 3, 4, 7],
    'column_2': [1, 2, 3, 4, 5]
})

## Use the rank() method with different methods
df['average_rank'] = df['column_1'].rank(method='average')
df['min_rank'] = df['column_1'].rank(method='min')
df['max_rank'] = df['column_1'].rank(method='max')
df['first_rank'] = df['column_1'].rank(method='first')
df['dense_rank'] = df['column_1'].rank(method='dense')

## Display the DataFrame
df

Classificar uma Coluna com Valores Nulos

Se o DataFrame contiver valores nulos (NaN), você pode usar o parâmetro na_option para especificar como os valores nulos devem ser classificados.

  • Se na_option for definido como 'keep', os valores nulos receberão classificações NaN.
  • Se na_option for definido como 'top', os valores nulos receberão a classificação mais baixa.
  • Se na_option for definido como 'bottom' e ascending=True, os valores nulos receberão a classificação mais alta.
## Import the pandas library
import pandas as pd
import numpy as np

## Create a DataFrame with null values
df = pd.DataFrame({
    'column_1': [1, 3, np.nan, 4, np.nan],
    'column_2': [1, 2, 3, np.nan, np.nan]
})

## Use the rank() method with different na_option parameters
df['keep_rank_Nan'] = df['column_2'].rank(na_option='keep')
df['Top_rank_Nan'] = df['column_2'].rank(na_option='top')
df['Bottom_rank_Nan'] = df['column_1'].rank(na_option='bottom')

## Display the DataFrame
df

Resumo

Neste laboratório, você aprendeu como usar o método DataFrame.rank() no Pandas para atribuir classificações aos dados em um DataFrame. Você pode especificar diferentes parâmetros, como axis (eixo), method (método), numeric_only (apenas numérico), na_option, ascending (ascendente) e pct, para personalizar o processo de classificação. O método rank() é útil para identificar a posição dos valores dentro de uma coluna e classificar os dados com base nas classificações.