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 dtypesto_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:
| Objetivo | Melhor método |
|---|---|
| Representar linhas como listas | df.to_numpy().tolist() |
| Converter uma única coluna | df[col].tolist() |
| Usar tuplas (SQL/API) | [tuple(x) for x in df.to_numpy()] |
| Converter em objetos prontos para JSON | df.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.