Skip to content

How to Convert Pandas DataFrame to List?

Updated on

Converter um Pandas DataFrame para uma lista Python é uma tarefa comum em limpeza de dados, exportação, engenharia de atributos e preparação de dados para APIs. Embora tolist() ainda seja amplamente usado, o Pandas introduziu abordagens mais explícitas e modernas — como to_numpy() e to_dict() — que geralmente oferecem melhor clareza e desempenho.

Este guia atualizado cobre:

  • Converter um DataFrame em uma lista de listas
  • Converter uma única coluna em lista
  • Criar listas ou tuplas aninhadas
  • Alternativas modernas como lista de dicionários (comumente usada para saída JSON/API)

⚡ Bônus: visualize seus dados instantaneamente

Quer explorar seu DataFrame visualmente sem escrever código de plotagem?

PyGWalker é uma ferramenta Python open-source que transforma seu Pandas ou Polars DataFrame em uma interface interativa ao estilo Tableau dentro do Jupyter Notebook.

Basta instalar e executar:

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. Converter um DataFrame inteiro em lista (lista de listas)

A forma mais comum é converter cada linha em uma lista.

✔ Recomendado (2025): 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)

Saída:

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

Por que preferir to_numpy() em vez de df.values?

  • df.values é mais antigo e pode se comportar de forma inconsistente com certos dtypes
  • to_numpy() é o método moderno e explícito recomendado pelo Pandas

🧩 2. Converter uma única coluna em lista

Use Series.tolist() — rápido e simples.

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

Saída:

[1, 2, 3]

🧩 3. Criar listas aninhadas ou tuplas (lista de tuplas)

Se você precisar de tuplas (por exemplo, para inserts em SQL ou entradas de API):

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

Saída:

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

Alternativa usando to_records():

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

⭐ Bônus: converter em lista de dicionários (melhor para JSON / APIs)

Muitas aplicações do mundo real esperam objetos no estilo JSON.

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

Saída:

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

Esse é o formato moderno mais comum para:

  • APIs
  • Exportação de atributos para machine learning
  • Gravação em arquivos JSON
  • Passar dados estruturados entre sistemas

📌 Exemplos rápidos (resumo)

# lista de listas
df.to_numpy().tolist()
 
# usando df.values (mais antigo)
df.values.tolist()
 
# coluna → lista
df["numbers"].tolist()
 
# lista de tuplas
[tuple(x) for x in df.to_numpy()]
 
# lista de dicionários (pronto para JSON)
df.to_dict("records")

✅ Conclusão

Converter um Pandas DataFrame em lista é simples, mas escolher o formato certo depende do seu caso de uso:

ObjetivoMelhor método
Representar linhas como listasdf.to_numpy().tolist()
Converter uma única colunadf[col].tolist()
Usar tuplas (SQL/API)[tuple(x) for x in df.to_numpy()]
Converter em objetos prontos para JSONdf.to_dict("records")

Com essas técnicas modernas, você consegue transformar seu DataFrame de forma limpa e eficiente — seja para preparar dados para modelagem, visualização ou exportação.