Skip to content

Cómo Convertir un Pandas DataFrame a una Lista

Updated on

Convertir un Pandas DataFrame a una lista de Python es una tarea común en limpieza de datos, exportación, ingeniería de características y preparación de datos para APIs. Aunque tolist() sigue siendo muy usado, Pandas ha introducido enfoques más explícitos y modernos—como to_numpy() y to_dict()—que a menudo ofrecen mejor claridad y rendimiento.

Esta guía actualizada cubre:

  • Convertir un DataFrame a una lista de listas
  • Convertir una única columna a lista
  • Crear listas o tuplas anidadas
  • Alternativas modernas como lista de diccionarios (muy usada para salida JSON/API)

⚡ Bonus: Visualiza tus Datos al Instante

¿Quieres explorar tu DataFrame de forma visual sin escribir código de gráficos?

PyGWalker es una herramienta de Python de código abierto que convierte tu Pandas o Polars DataFrame en una interfaz interactiva tipo Tableau dentro de Jupyter Notebook.

Simplemente instala y ejecuta:

pip install pygwalker
import pygwalker as pyg
gwalker = pyg.walk(df)
Run in Kaggle (opens in a new tab)Run in Google Colab (opens in a new tab)⭐ GitHub (opens in a new tab)

🧩 1. Convertir un DataFrame Completo a Lista (Lista de Listas)

La forma más común es convertir cada fila en una lista.

✔ Recomendado : df.to_numpy().tolist()

import pandas as pd
 
df = pd.DataFrame({'numbers': [1, 2, 3], 'letters': ['a', 'b', 'c']})
list_from_df = df.to_numpy().tolist()
print(list_from_df)

Salida:

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

¿Por qué preferir to_numpy() sobre df.values?

  • df.values es más antiguo y puede comportarse de forma inconsistente con ciertos dtypes
  • to_numpy() es el método moderno y explícito recomendado por Pandas

🧩 2. Convertir una Única Columna a Lista

Usa Series.tolist() — rápido y limpio.

list_from_column = df["numbers"].tolist()
print(list_from_column)

Salida:

[1, 2, 3]

🧩 3. Crear Listas o Tuplas Anidadas (Lista de Tuplas)

Si necesitas tuplas (por ejemplo, para inserts en SQL o entradas de APIs):

nested_list = [tuple(row) for row in df.to_numpy()]
print(nested_list)

Salida:

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

Alternativa usando to_records():

nested_list = [tuple(x) for x in df.to_records(index=False)]

⭐ Bonus: Convertir a Lista de Diccionarios (Ideal para JSON / APIs)

Muchas aplicaciones del mundo real esperan objetos tipo JSON.

list_of_dicts = df.to_dict(orient="records")
print(list_of_dicts)

Salida:

[
  {"numbers": 1, "letters": "a"},
  {"numbers": 2, "letters": "b"},
  {"numbers": 3, "letters": "c"}
]

Este es el formato moderno más común para:

  • APIs
  • Exportar características de machine learning
  • Escribir en archivos JSON
  • Pasar datos estructurados entre sistemas

📌 Ejemplos Rápidos (Resumen)

# lista de listas
df.to_numpy().tolist()
 
# usando df.values (más antiguo)
df.values.tolist()
 
# columna → lista
df["numbers"].tolist()
 
# lista de tuplas
[tuple(x) for x in df.to_numpy()]
 
# lista de diccionarios (lista apta para JSON)
df.to_dict("records")

✅ Conclusión

Convertir un Pandas DataFrame a una lista es sencillo, pero elegir el formato adecuado depende de tu caso de uso:

ObjetivoMejor método
Representar filas como listasdf.to_numpy().tolist()
Convertir una única columnadf[col].tolist()
Usar tuplas (SQL/API)[tuple(x) for x in df.to_numpy()]
Convertir a objetos tipo JSONdf.to_dict("records")

Con estas técnicas modernas podrás transformar tu DataFrame de forma clara y eficiente, ya sea que estés preparando datos para modelado, visualización o exportación.