Skip to content
Tutoriales
Pandas
¿Cómo convertir un DataFrame de Pandas en una lista?

Cómo convertir un DataFrame de Pandas en una lista

Como científico de datos, es posible que te encuentres en situaciones donde necesites convertir un DataFrame de Pandas en una lista. Afortunadamente, esto es bastante fácil de lograr utilizando la función tolist(). En este artículo, explicaremos cómo convertir un DataFrame en una lista utilizando este método. También cubriremos cómo convertir una columna en una lista, cómo crear una lista anidada y proporcionaremos algunos ejemplos rápidos.

¿Quieres crear visualizaciones de datos rápidamente en Python?

PyGWalker es un proyecto de Python de código abierto que puede ayudar a acelerar el flujo de trabajo de análisis y visualización de datos directamente dentro de entornos basados en Jupyter Notebook.

PyGWalker (opens in a new tab) convierte tu DataFrame de Pandas (o DataFrame de Polars) en una interfaz de usuario visual donde puedes arrastrar y soltar variables para crear gráficos fácilmente. Simplemente usa el siguiente código:

pip install pygwalker
import pygwalker as pyg
gwalker = pyg.walk(df)

Puedes ejecutar PyGWalker ahora mismo con estos cuadernos en línea:

¡Y no te olvides de darnos una ⭐️ en GitHub!

Ejecutar PyGWalker en el cuaderno de Kaggle (opens in a new tab)Ejecutar PyGWalker en Google Colab (opens in a new tab)Darle una ⭐️ a PyGWalker en GitHub (opens in a new tab)
Ejecutar PyGWalker en el cuaderno de Kaggle (opens in a new tab)Ejecutar PyGWalker en Google Colab (opens in a new tab)Ejecutar PyGWalker en Google Colab (opens in a new tab)

Convertir un DataFrame en una lista

La función tolist() es un método incorporado en Pandas que convierte un DataFrame en una lista. Simplemente llamas a esta función en tu DataFrame y devolverá una lista.

import pandas as pd
 
# crear un DataFrame de ejemplo
df = pd.DataFrame({'números': [1, 2, 3], 'letras': ['a', 'b', 'c']})
 
# convertir el DataFrame en una lista
lista_desde_df = df.values.tolist()
print(lista_desde_df)

Este código mostrará:

[[1, 'a'], [2, 'b'], [3, 'c']]

Como puedes ver, la función tolist() devuelve una lista de listas, donde cada lista interna corresponde a una fila en el DataFrame. Los valores están ordenados por columna, y cada valor es del tipo que Pandas infiere a partir de los valores en la columna.

Convertir una columna en una lista

También hay situaciones en las que solo querrás convertir una columna específica de un DataFrame en una lista. Así es cómo hacerlo:

import pandas as pd
 
# crear un DataFrame de ejemplo
df = pd.DataFrame({'números': [1, 2, 3], 'letras': ['a', 'b', 'c']})
 
# convertir la columna 'números' en una lista
lista_desde_columna = df['números'].tolist()
print(lista_desde_columna)

Este código mostrará:

[1, 2, 3]

Como puedes ver, la función tolist() se usa en una columna específica y devuelve una lista con solo los valores de esa columna.

Crear una lista anidada

En algunas situaciones, es posible que necesites crear una lista anidada a partir de un DataFrame. Por ejemplo, es posible que desees una lista de tuplas para cada fila en lugar de una lista de listas. Así es cómo hacerlo:

import pandas as pd
 
# crear un DataFrame de ejemplo
df = pd.DataFrame({'números': [1, 2, 3], 'letras': ['a', 'b', 'c']})
 
# crear una lista anidada
lista_anidada = [tuple(x) for x in df.to_records(index=False)]
print(lista_anidada)

Este código mostrará:

[(1, 'a'), (2, 'b'), (3, 'c')]

Como puedes ver, utilizamos una comprensión de lista para crear una lista de tuplas a partir del DataFrame. Esto puede ser útil si necesitas pasar tus datos a una función que espera una estructura de datos específica.

Ejemplos rápidos

Aquí hay algunos ejemplos rápidos de cómo convertir un DataFrame en una lista:

import pandas as pd
 
# crear un DataFrame de ejemplo
df = pd.DataFrame({'números': [1, 2, 3], 'letras': ['a', 'b', 'c']})
 
# convertir el DataFrame en una lista (método 1)
lista_desde_df1 = df.values.tolist()
 
# convertir el DataFrame en una lista (método 2)
lista_desde_df2 = [list(x) for x in df.values]
 
# convertir la columna 'números' en una lista
lista_desde_columna = df['números'].tolist()
 
# crear una lista anidada
lista_anidada = [tuple(x) for x in df.to_records(index=False)]

En el primer ejemplo, utilizamos la función tolist() para convertir el DataFrame en una lista de listas.

En el segundo ejemplo, utilizamos una comprensión de lista para lograr el mismo resultado.

En el tercer ejemplo, utilizamos la función tolist() en una columna específica para convertirla en una lista.

Y en el cuarto ejemplo, utilizamos una comprensión de lista para crear una lista anidada de tuplas.

Conclusión

Convertir un Pandas DataFrame a una lista es una tarea común en la ciencia de datos. Afortunadamente, también es bastante simple utilizando la función tolist(). Ya sea que necesite convertir todo el DataFrame en una lista, una columna específica en una lista, o crear una lista anidada, esta función lo tiene cubierto. Con los ejemplos proporcionados en este artículo, podrás lograr esta tarea rápidamente y fácilmente en tus propios proyectos.