preloader

Función `pivot()` de Pandas

Índice de contenido

Introducción


La función pivot() en Pandas se utiliza para transformar un DataFrame de formato largo (long format) en un formato ancho (wide format). Esta función permite agregar los valores de una columna específica del DataFrame y utilizarlos como nuevas columnas en el DataFrame transformado.

La sintaxis básica de la función pivot() es la siguiente:

python
pd.pivot(df, index, columns, values)

En cuyo caso:

  • df: es el DataFrame que se desea transformar.
  • index: es la columna o lista de columnas que se utilizarán como índice en el DataFrame transformado.
  • columns: es la columna o lista de columnas cuyos valores se utilizarán como nombres de las nuevas columnas en el DataFrame transformado.
  • values: es la columna o lista de columnas cuyos valores se utilizarán para llenar el DataFrame transformado.

Aquí hay un ejemplo para ilustrar cómo usar la función pivot():

python
import pandas as pd

Primer ejemplo


python
# Creamos un DataFrame de ejemplo:
df = pd.DataFrame({'Estudiante': ['Juan', 'Maria', 'Pedro', 'Ana'],
                   'Asignatura': ['Matematicas', 'Matematicas', 'Ciencias', 'Ciencias'],
                   'Calificacion': [90, 85, 80, 92]})

df.head(4)

EstudianteAsignaturaCalificacion
0JuanMatematicas90
1MariaMatematicas85
2PedroCiencias80
3AnaCiencias92
python
# Transformamos el DataFrame de formato largo a formato ancho:
df_pivoted = df.pivot(index = 'Estudiante', 
                      columns = 'Asignatura', 
                      values = 'Calificacion')

df_pivoted.head(12)

AsignaturaCienciasMatematicas
Estudiante
Ana92.0NaN
JuanNaN90.0
MariaNaN85.0
Pedro80.0NaN

En este ejemplo, el DataFrame df tiene una columna Asignatura y una columna Calificacion que se deben transformar en dos columnas separadas en el DataFrame transformado. La función pivot() se utiliza para hacer esto, y los resultados se almacenan en el DataFrame df_pivoted.

En este DataFrame transformado, cada fila representa un estudiante y cada columna representa una asignatura. Los valores en cada celda corresponden a la calificación del estudiante en esa asignatura. Si un estudiante no tiene una calificación para una asignatura determinada, la celda correspondiente se llenará con un valor NaN.

Segundo ejemplo


python
# Creamos un DataFrame de ejemplo:
df = pd.DataFrame({'Estudiante': ['Juan', 'Maria', 'Pedro', 'Ana'],
                   'Asignatura': ['Matematicas', 'Ciencias', 'Matematicas', 'Ciencias'],
                   'Calificacion': [90, 85, 75, 95]})

df.head(4)

EstudianteAsignaturaCalificacion
0JuanMatematicas90
1MariaCiencias85
2PedroMatematicas75
3AnaCiencias95
python
# Transformamos el DataFrame de formato largo a formato ancho:
df_pivoted = df.pivot(index = 'Estudiante', 
                      columns = 'Asignatura', 
                      values = 'Calificacion')

df_pivoted.head(12)

AsignaturaCienciasMatematicas
Estudiante
Ana95.0NaN
JuanNaN90.0
Maria85.0NaN
PedroNaN75.0

En este ejemplo, hemos especificado index = 'Estudiante' para que la columna de los nombres de los estudiantes se utilice como índice en el DataFrame transformado. Luego, hemos especificado columns = 'Asignatura' para que las columnas de las asignaturas se utilicen como nombres de las nuevas columnas en el DataFrame transformado, y values = 'Calificacion' para que los valores correspondientes a cada calificación se utilicen para llenar el DataFrame transformado.

En este DataFrame transformado, cada fila representa un estudiante y cada columna representa una asignatura. Los valores en cada celda corresponden a la calificación del estudiante en esa asignatura. Si un estudiante no tiene una calificación para una asignatura determinada, la celda correspondiente se llenará con un valor NaN.

comments powered by Disqus