0Pricing
Pandas & NumPy Academy · Lección

Métodos útiles de Series

Use describe(), value_counts(), unique() y map() para resumir y transformar rápidamente una Series.

Métodos útiles de Series es una lección gratuita de Pandas & NumPy Academy en CoddyKit. Esta es la lección 4 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Pandas & NumPy Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Pandas & NumPy Academy incluye 4 lecciones en total.

Resumen rápido con describe()

s.describe() genera un resumen estadístico en una sola llamada: recuento, media, desviación estándar, mínimo, percentil 25 (Q1), mediana (Q2), percentil 75 (Q3) y máximo. Para las Series de cadenas, devuelve en su lugar el recuento, los valores únicos, el valor más frecuente y su frecuencia. Es la forma más rápida de hacerse una idea de la distribución de una columna al explorar un conjunto de datos por primera vez.

import pandas as pd

ages = pd.Series([25, 32, 19, 45, 28, 31, 22, 40])
print(ages.describe())
# count     8.000000
# mean     30.250000
# std       8.406...
# min      19.000000
# 25%      24.250000
# 50%      29.500000
# 75%      34.750000
# max      45.000000

value_counts() para tablas de frecuencias

s.value_counts() devuelve una nueva Series con los valores únicos como índice y sus recuentos de apariciones como datos, ordenados de forma descendente por recuento. Pase normalize=True para obtener proporciones en lugar de recuentos absolutos. Es lo primero que conviene ejecutar en una columna categórica para comprender su distribución.

import pandas as pd

colors = pd.Series(['red', 'blue', 'red', 'green', 'blue', 'red'])
print(colors.value_counts())
# red      3
# blue     2
# green    1
print(colors.value_counts(normalize=True).round(2))
# red      0.50  blue  0.33  green  0.17

unique() y nunique()

s.unique() devuelve una matriz de NumPy con los valores distintos en el orden de su primera aparición (a diferencia de value_counts, que ordena por frecuencia). s.nunique() devuelve como entero el número de valores distintos: la cardinalidad de la columna. Ambos omiten NaN de forma predeterminada. Use nunique(dropna=False) para contar NaN como un valor distinto.

import pandas as pd

s = pd.Series(['apple', 'banana', 'apple', 'cherry', 'banana'])
print(s.unique())    # ['apple' 'banana' 'cherry']
print(s.nunique())   # 3

map() para transformar elemento a elemento

s.map() aplica una función, un diccionario u otra Series a cada elemento. Si pasa un diccionario, cada valor se sustituye por el valor correspondiente del diccionario, y los valores que no aparecen en él se convierten en NaN. Si pasa una función, esta se aplica elemento a elemento. map es ideal para recodificar etiquetas categóricas o aplicar tablas de consulta.

import pandas as pd

grades = pd.Series(['A', 'B', 'C', 'A', 'B'])
gpa = {'A': 4.0, 'B': 3.0, 'C': 2.0}
print(grades.map(gpa))
# 0    4.0
# 1    3.0
# 2    2.0
# 3    4.0
# 4    3.0

apply() para funciones personalizadas

s.apply(func) aplica un objeto invocable de Python a cada elemento y recopila los resultados. A diferencia de map(), está diseñado para funciones más complejas que pueden devolver objetos no escalares. Para transformaciones sencillas elemento a elemento, prefiera map() o una expresión vectorizada; use apply() cuando la lógica sea demasiado compleja para vectorizarla directamente.

import pandas as pd

sentences = pd.Series(['Hello world', 'Pandas is great', 'Data science'])
word_counts = sentences.apply(lambda x: len(x.split()))
print(word_counts)
# 0    2
# 1    3
# 2    2

sort_values() y sort_index()

s.sort_values() devuelve la Series ordenada por los valores de los datos en orden ascendente (pase ascending=False para orden descendente). s.sort_index() ordena por las etiquetas del índice. De forma predeterminada, ninguno de los dos métodos modifica la Series original. Pase inplace=True para modificarla directamente (una opción menos recomendable en el código moderno de Pandas que encadena operaciones).

import pandas as pd

s = pd.Series([30, 10, 50, 20], index=['d', 'a', 'c', 'b'])
print(s.sort_values())
# a    10
# b    20
# d    30
# c    50
print(s.sort_index())
# a    10
# b    20
# c    50
# d    30

isin() para comprobar pertenencia

s.isin(values) devuelve una Series booleana que contiene True allí donde el elemento pertenece a la lista o conjunto proporcionado. Es más legible que utilizar varias condiciones con | y significativamente más rápido con conjuntos grandes. Se utiliza habitualmente para filtrar filas que pertenecen a un grupo específico o marcar registros que coinciden con una lista de consulta.

import pandas as pd

countries = pd.Series(['DE', 'US', 'FR', 'UK', 'US', 'DE'])
nordics = ['DE', 'FR']
print(countries.isin(nordics))
# 0     True  1    False  2     True  3    False  4    False  5     True
print(countries[countries.isin(nordics)])

between() para filtrar por rangos

s.between(left, right, inclusive='both') devuelve una Serie booleana que es True cuando el valor se encuentra dentro del intervalo [left, right]. De forma predeterminada, ambos extremos están incluidos. Es más conciso que escribir (s >= left) & (s <= right) y comunica claramente la intención. Resulta útil para filtrar intervalos numéricos, como grupos de edad o rangos de precios.

import pandas as pd

scores = pd.Series([45, 72, 83, 91, 55, 68])
pass_mask = scores.between(60, 100)
print(pass_mask)
# 0    False  1    True  2    True  3    True  4    False  5    True
print(scores[pass_mask].values)  # [72 83 91 68]

head() y tail() para una inspección rápida

s.head(n) devuelve los primeros n elementos (5 de forma predeterminada) y s.tail(n) devuelve los últimos n. Se utilizan constantemente al explorar datos para consultar el principio y el final de una Serie larga sin imprimir miles de filas. Devuelven una Serie nueva (un segmento), por lo que no modifican la original.

import pandas as pd

s = pd.Series(range(100))
print(s.head(3))
# 0    0
# 1    1
# 2    2
print(s.tail(3))
# 97    97
# 98    98
# 99    99

rename() para cambiar el nombre

s.rename('new_name') devuelve una Serie nueva con un atributo name diferente. Para cambiar el nombre de las etiquetas del índice, pase un diccionario o una función: s.rename(index={'old': 'new'}). Cambiar nombres es importante antes de combinar Series en un DataFrame, porque el name de la Serie se convierte en el encabezado de la columna. Cambie siempre el nombre en lugar de reasignar valores sin procesar.

import pandas as pd

s = pd.Series([1, 2, 3], index=['a', 'b', 'c'], name='original')
renamed = s.rename('updated').rename(index={'a': 'x', 'b': 'y', 'c': 'z'})
print(renamed)
# x    1
# y    2
# z    3
# Name: updated

idxmin() e idxmax()

s.idxmin() devuelve la etiqueta del índice del valor mínimo y s.idxmax() devuelve la etiqueta del valor máximo. Esto resulta más útil que argmin/argmax cuando el índice tiene etiquetas significativas, como fechas o nombres de productos: obtiene el identificador real, no solo un número de posición.

import pandas as pd

scores = pd.Series({'Alice': 88, 'Bob': 73, 'Carol': 95, 'Dan': 60})
print('Best:', scores.idxmax(), scores.max())   # Carol 95
print('Worst:', scores.idxmin(), scores.min())  # Dan   60

Comprobación rápida

Compruebe su comprensión de los métodos útiles de Series de esta lección.

Resumen de la lección

En esta lección ha aprendido que describe() proporciona un resumen estadístico en una sola llamada, que value_counts() crea una tabla de frecuencias de los valores únicos y que map() transforma valores mediante un diccionario, mientras que apply() ejecuta una función personalizada en cada elemento. A continuación, empezaremos a trabajar con DataFrames, la herramienta bidimensional fundamental del análisis de datos con Pandas.

Preguntas frecuentes

¿La lección «Métodos útiles de Series» es gratis?

Sí — el texto completo de «Métodos útiles de Series» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Pandas & NumPy Academy, actualiza a CoddyKit PRO. El curso de Pandas & NumPy Academy incluye 4 lecciones en total.

¿Qué aprenderé en «Métodos útiles de Series»?

Use describe(), value_counts(), unique() y map() para resumir y transformar rápidamente una Series. Practicas Pandas & NumPy Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar Pandas & NumPy Academy?

No se requiere experiencia previa. Pandas & NumPy Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 4 de 4.

¿Cuánto tiempo toma la lección «Métodos útiles de Series»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de Pandas & NumPy Academy?

Sí. Cada lección de Pandas & NumPy Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. Creación de una Series
  2. Acceso por etiquetas y por posiciones
  3. Operaciones vectorizadas en Series
  4. Métodos útiles de Series
← Volver a Pandas & NumPy Academy