Data Analysis

Domina el Ordenamiento de DataFrames en Pandas: Una Guía Completa

Spread the love

Los DataFrames de Pandas ofrecen herramientas poderosas para la manipulación de datos, y la ordenación es una operación fundamental. Este artículo explora cómo ordenar eficientemente un DataFrame por una sola columna, centrándose en el crucial método sort_values() y sus argumentos clave: ascending y na_position.

Tabla de Contenidos

Control del Orden de Clasificación con ascending

El método sort_values() proporciona un control sencillo sobre la dirección de la ordenación. El argumento ascending, que por defecto es True (orden ascendente), determina si se ordena en orden ascendente o descendente.


import pandas as pd

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

df = pd.DataFrame(data)

# Ordenación ascendente por 'Age'
df_ascending = df.sort_values(by='Age')
print("Ascendente:n", df_ascending)

# Ordenación descendente por 'Age'
df_descending = df.sort_values(by='Age', ascending=False)
print("nDescendente:n", df_descending)

Manejo de Valores Faltantes con na_position

Cuando se trabaja con conjuntos de datos que contienen valores faltantes (NaN), el argumento na_position controla la colocación de estos valores dentro de la columna ordenada. Acepta dos valores:

  • 'first' (predeterminado): Coloca los valores NaN al principio de la columna ordenada.
  • 'last': Coloca los valores NaN al final de la columna 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 primero
df_na_first = df.sort_values(by='Age', na_position='first')
print("NaN primero:n", df_na_first)

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

Ordenación por Múltiples Columnas

Puede extender esto fácilmente para ordenar por múltiples columnas pasando una lista al argumento by. Pandas ordenará por la primera columna de la lista, luego por la segunda, y así sucesivamente.


# Ordenar por Edad (ascendente) luego por Puntuación (descendente)
df_multi = df.sort_values(by=['Age', 'Score'], ascending=[True, False])
print("nOrdenación multi-columna:n", df_multi)

Ordenación In-Place

Por defecto, sort_values() devuelve un DataFrame ordenado *nuevo*. Para modificar el DataFrame directamente, establezca el argumento inplace en True. Tenga en cuenta que esto modifica el DataFrame original, así que tenga cuidado.


df.sort_values(by='Age', inplace=True)
print("nOrdenación in-place:n", df)

Al comprender y utilizar estos argumentos, puede ordenar eficiente y precisamente sus DataFrames de Pandas, optimizando su flujo de trabajo de análisis de datos.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *