A tu propio ritmo

Explora nuestra extensa colección de cursos diseñados para ayudarte a dominar varios temas y habilidades. Ya seas un principiante o un aprendiz avanzado, aquí hay algo para todos.

Bootcamp

Aprende en vivo

Únete a nosotros en nuestros talleres gratuitos, webinars y otros eventos para aprender más sobre nuestros programas y comenzar tu camino para convertirte en desarrollador.

Próximos eventos en vivo

Catálogo de contenidos

Para los geeks autodidactas, este es nuestro extenso catálogo de contenido con todos los materiales y tutoriales que hemos desarrollado hasta el día de hoy.

Tiene sentido comenzar a aprender leyendo y viendo videos sobre los fundamentos y cómo funcionan las cosas.

Full-Stack Software Developer - 16w

Data Science and Machine Learning - 16 wks

Buscar en lecciones


IngresarEmpezar

Weekly Coding Challenge

Todas las semanas escogemos un proyecto de la vida real para que construyas tu portafolio y te prepares para conseguir un trabajo. Todos nuestros proyectos están construidos con ChatGPT como co-pilot!

Únete al reto

Podcast: Code Sets You Free

Un podcast de cultura tecnológica donde aprenderás a luchar contra los enemigos que te bloquean en tu camino para convertirte en un profesional exitoso en tecnología.

Escuchar el podcast
← Volver a Cómo hacerlo
Editar en Github

¿Cómo usar el método pivot de Pandas?

Escrito por:

El método pivot de la librería de Pandas nos permite reorganizar y transformar los datos de un DataFrame creando una nueva tabla con un formato diferente. Si te gustaría aprender a utilizar pandas desde cero, te dejamos este tutorial de pandas para machine learning A continuación podrás encontrar un pequeño ejemplo sobre cómo utilizar este método y cómo transformar el DataFrame original.

1import pandas as pd 2 3products_df = pd.DataFrame({ 4 'Fecha': ['2023-01-01', '2023-01-01', '2023-01-02', '2023-01-02'], 5 'Producto': ['Samsung', 'Apple', 'Samsung', 'Apple'], 6 'Venta': [100, 150, 200, 120] 7}) 8 9print("Información original:") 10print(products_df) 11 12pivot_df = products_df.pivot(index='Fecha', columns='Producto', values='Venta') 13print("\nInformación pivoteada:") 14print(pivot_df)

output del código:

1Información original: 2 Fecha Producto Venta 30 2023-01-01 Samsung 100 41 2023-01-01 Apple 150 52 2023-01-02 Samsung 200 63 2023-01-02 Apple 120 7 8Información pivotada: 9Producto Apple Samsung 10Fecha 112023-01-01 150 100 122023-01-02 120 200

El método pivot() recibe tres parámetros, el parámetro index, el parámetro columns y el parámetro values los tres parámetros son necesarios para poder utilizar este método. Como puedes ver en el ejemplo, el nuevo DataFrame tiene como índices los valores de la columna Fecha además utilizó los valores de la columna Producto como nombre para las columnas en el nuevo DataFrame y los valores de la columna Venta como los valores para las columnas. En el DataFrame pivotado podemos ver cuántas ventas ha tenido cada producto en cada fecha.

Qué es y como funciona el método pivot()

El método pivot() es un método de la librería de Pandas que nos permite transformar los datos de un DataFrame al reorganizar sus datos en función de las columnas existentes. Permite reconfigurar los datos de manera que los valores en una columna se conviertan en nuevas columnas y se crucen con los valores de otra columna. Esto es especialmente útil para crear tablas dinámicas y resúmenes de datos.

El método pivot() se utiliza principalmente en situaciones en las que se desea cambiar la estructura de los datos para un análisis más conveniente. Permite que los datos sean más legibles y accesibles al proporcionar una vista diferente de los mismos. Este método retorna un nuevo DataFrame con los datos pivotados y no modifica el DataFrame original.

Parámetros del método pivot()

El método pivot() recibe tres parámetros, los cuales veremos en más detalle a continuación.

1data_frame.pivot(index, columns, values)
  • index: Este parámetro recibe como valor una columna o lista de columnas que se usan como índices en el nuevo DataFrame. Puede ser una cadena o una lista de cadenas. Si se omite, se usa el índice de DataFrame original.
  • columns: (required) Este parámetro recibe como valor la columna o lista de columnas que se usan como los nombre para las columnas en el nuevo DataFrame.
  • values: Este parámetro recibe como valor la columna o lista de columnas que se usan como los valores para el nuevo DataFrame. Si no se especifica, se utilizarán todas las columnas restantes y el resultado tendrá columnas indexadas jerárquicamente.

Ejemplos de uso del método pivot()

El método pivot() tiene múltiples ejemplos de uso, a continuación veremos algunos de ellos basados en el siguiente DataFrame.

1 producto pais año ventas 20 Apple Colombia 2016 1000 31 Apple Perú 2017 800 42 Apple Ecuador 2018 600 53 Samsung Colombia 2019 1200 64 Samsung Perú 2020 900 75 Samsung Ecuador 2021 700 86 Linux Colombia 2022 1100 97 Linux Perú 2023 850 108 Linux Ecuador 2024 650

Utilizar una sola columna para crear el dataframe

En este ejemplo, vamos a pasarle una sola columna como valor al parámetro index y al parámetro columns.

1import pandas as pd 2 3df = pd.DataFrame({ 4 "producto": ["Apple", "Apple", "Apple", "Samsung", "Samsung", "Samsung", "Linux", "Linux", "Linux"], 5 "pais": ["Colombia", "Perú", "Ecuador", "Colombia", "Perú", "Ecuador", "Colombia", "Perú", "Ecuador"], 6 "año": [2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024], 7 "ventas": [1000, 800, 600, 1200, 900, 700, 1100, 850, 650] 8}) 9 10df_pivot = df.pivot(index="año", columns="producto", values="ventas").fillna("N/A") 11 12print(df_pivot)

output del código:

1producto Apple Linux Samsung 2año 32016 1000.0 N/A N/A 42017 800.0 N/A N/A 52018 600.0 N/A N/A 62019 N/A N/A 1200.0 72020 N/A N/A 900.0 82021 N/A N/A 700.0 92022 N/A 1100.0 N/A 102023 N/A 850.0 N/A 112024 N/A 650.0 N/A

En este ejemplo, hacemos uso del método pivot() para transformar un DataFrame de productos, para este ejemplo vamos a utilizar los valores de la columna año como índice, los valores de la columna producto para representar las columnas y los valor de la columna ventas para llenar los valores en el nuevo DataFrame, además hacemos uso del método fillna() para reemplazar todos los valores NaN con el texto N/A(No aplica). En este ejemplo transformamos el DataFrame para ver cuántas ventas ha tenido cada producto en cada año.

Utilizar una lista de columnas para crear el dataframe

El método drop() también puede recibir una lista de columnas como valores para los parámetros, a continuación veremos un pequeño ejemplo sobre cómo puede ser útil en algunas ocasiones.

1import pandas as pd 2 3df = pd.DataFrame({ 4 "producto": ["Apple", "Apple", "Apple", "Samsung", "Samsung", "Samsung", "Linux", "Linux", "Linux"], 5 "pais": ["Colombia", "Perú", "Ecuador", "Colombia", "Perú", "Ecuador", "Colombia", "Perú", "Ecuador"], 6 "año": [2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024], 7 "ventas": [1000, 800, 600, 1200, 900, 700, 1100, 850, 650] 8}) 9 10df_pivot = df.pivot(index="año", columns=["producto", "pais"], values="ventas").fillna("N/A") 11 12print(df_pivot)

output del código:

1producto Apple Samsung Linux 2pais Colombia Perú Ecuador Colombia Perú Ecuador Colombia Perú Ecuador 3año 42016 1000.0 N/A N/A N/A N/A N/A N/A N/A N/A 52017 N/A 800.0 N/A N/A N/A N/A N/A N/A N/A 62018 N/A N/A 600.0 N/A N/A N/A N/A N/A N/A 72019 N/A N/A N/A 1200.0 N/A N/A N/A N/A N/A 82020 N/A N/A N/A N/A 900.0 N/A N/A N/A N/A 92021 N/A N/A N/A N/A N/A 700.0 N/A N/A N/A 102022 N/A N/A N/A N/A N/A N/A 1100.0 N/A N/A 112023 N/A N/A N/A N/A N/A N/A N/A 850.0 N/A 122024 N/A N/A N/A N/A N/A N/A N/A N/A 650.0

En este ejemplo, hacemos uso del método pivot() y le pasamos una lista como valor al parámetro columns, esta lista contiene dos columnas (producto y pais) lo que significa que el método pivot() utilizará la columna producto y creará una columna con cada uno de sus valores, luego creará una subcolumna con los valores de la columna pais y agrega esta subcolumna a cada una de las columnas de Producto, por último hacemos uso del método fillna() para reemplazar todos los valores NaN por el texto N/A(No aplica). Este ejemplo puede ser un poco más confuso pero utilizar una lista de columnas como valores para los parámetros puede ser muy útil en algunas ocasiones.

Conclusión

El método pivot() se utiliza para reorganizar los valores de un DataFrame, en este artículo vimos cómo funciona este método, cuáles son los parámetros que recibe y algunos ejemplos sobre cómo utilizarlo. Este método puede ser un poco confuso pero también puede ser muy útil en algunas ocasiones. Te invito a que sigas practicando con este método y que lo implementes en operaciones más complejas ya que esto te servirá para entender mejor cómo funciona, puedes buscar un dataset de información más grande y empezar a jugar con las diferentes variaciones que puedes hacer con este método.

Esperamos que hayas disfrutado de este artículo y que encuentres la información útil para utilizar el método pivot de Pandas en Python y simplificar la transformación y análisis de tus datos. Te invitamos a explorar otros recursos en nuestro blog para ampliar tus habilidades en Python y análisis de datos. Si deseas llevar tu aprendizaje al siguiente nivel, te animamos a registrarte de forma totalmente gratuita en 4Geeks.com.

¡Diviértete en tu ruta de aprendizaje! 😉👋