Data Analysis

Dominando a Ordenação de DataFrames Pandas: Um Guia Completo

Spread the love

DataFrames Pandas oferecem ferramentas poderosas para manipulação de dados, e a ordenação é uma operação fundamental. Este artigo explora como ordenar eficientemente um DataFrame por uma única coluna, focando no método crucial sort_values() e seus argumentos principais: ascending e na_position.

Sumário

Controlando a Ordem de Ordenação com ascending

O método sort_values() fornece controle direto sobre a direção da ordenação. O argumento ascending, que padrão para True (ordem crescente), determina se a ordenação será em ordem crescente ou decrescente.


import pandas as pd

data = {'Name': ['Alice', 'Bob', 'Charlie', 'David'],
        'Age': [25, 30, 22, 28],
        'Score': [85, 92, 78, 88]}

df = pd.DataFrame(data)

# Ordenação crescente por 'Age'
df_ascending = df.sort_values(by='Age')
print("Crescente:n", df_ascending)

# Ordenação decrescente por 'Age'
df_descending = df.sort_values(by='Age', ascending=False)
print("nDecrescente:n", df_descending)

Lidando com Valores Ausentes com na_position

Ao lidar com conjuntos de dados contendo valores ausentes (NaN), o argumento na_position controla o posicionamento desses valores dentro da coluna ordenada. Ele aceita dois valores:

  • 'first' (padrão): Posiciona valores NaN no início da coluna ordenada.
  • 'last': Posiciona valores NaN no final da coluna ordenada.

import pandas as pd
import numpy as np

data = {'Name': ['Alice', 'Bob', 'Charlie', 'David', 'Eve'],
        'Age': [25, 30, np.nan, 28, 22],
        'Score': [85, 92, 78, 88, 95]}

df = pd.DataFrame(data)

# Valores NaN primeiro
df_na_first = df.sort_values(by='Age', na_position='first')
print("NaN primeiro:n", df_na_first)

# Valores NaN por último
df_na_last = df.sort_values(by='Age', na_position='last')
print("nNaN por último:n", df_na_last)

Ordenando por Múltiplas Colunas

Você pode facilmente estender isso para ordenar por múltiplas colunas passando uma lista para o argumento by. Pandas ordenará pela primeira coluna na lista, depois pela segunda, e assim por diante.


# Ordenar por Idade (crescente) e depois por Pontuação (decrescente)
df_multi = df.sort_values(by=['Age', 'Score'], ascending=[True, False])
print("nOrdenação multi-coluna:n", df_multi)

Ordenação In-Place

Por padrão, sort_values() retorna um novo DataFrame ordenado. Para modificar o DataFrame diretamente, defina o argumento inplace como True. Observe que isso modifica o DataFrame original, portanto, seja cauteloso.


df.sort_values(by='Age', inplace=True)
print("nOrdenação in-place:n", df)

Ao entender e utilizar esses argumentos, você pode ordenar seus DataFrames Pandas de forma eficiente e precisa, otimizando seu fluxo de trabalho de análise de dados.

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *