Como Criar um DataFrame Vazio no Pandas
Updated on
Trabalhar com conjuntos de dados é uma parte central de qualquer fluxo de trabalho de análise de dados. Seja seu dado vindo de um arquivo CSV, banco de dados SQL, resposta JSON ou uma API externa, o Pandas fornece uma interface poderosa e intuitiva para limpeza, transformação e exploração.
Neste guia, vamos passar por várias formas práticas de criar um DataFrame vazio no Pandas, explicar quando usar cada abordagem e apresentar boas práticas modernas (incluindo a criação de DataFrames vazios com tipos de coluna).
🚀 Quer transformar instantaneamente seu DataFrame em uma ferramenta de visualização interativa?
PyGWalker é uma biblioteca Python open-source que adiciona uma interface de arrastar e soltar para exploração de dados — direto no seu Jupyter Notebook.
Experimente com:
pip install pygwalker import pygwalker as pyg gwalker = pyg.walk(df)
Você pode testar o PyGWalker instantaneamente usando estes notebooks online:
| Run PyGWalker in Kaggle Notebook (opens in a new tab) | Run PyGWalker in Google Colab (opens in a new tab) | Give PyGWalker a ⭐️ (opens in a new tab) |
|---|---|---|
![]() | ![]() | ![]() |
O que é um DataFrame?
Um DataFrame é uma estrutura de dados tabular bidimensional no Pandas, em que cada coluna pode ter tipos de dados diferentes. Você pode pensar nele como uma planilha ou uma tabela SQL. DataFrames suportam operações poderosas, incluindo:
- filtragem e fatiamento
- merge e join
- agregação
- reshaping
- visualização
Por que Criar um DataFrame Vazio?
DataFrames vazios são úteis quando você precisa:
- definir um esquema antes de carregar os dados
- adicionar linhas programaticamente
- inicializar uma tabela de resultados para loops ou agregações
- preparar uma estrutura para atualizações incrementais
Exemplo: preparar uma tabela com informações de produtos antes de ingerir os dados.
⭐ Comparação Rápida dos Métodos
| Método | Melhor Caso de Uso |
|---|---|
pd.DataFrame() | Criar um “casco” completamente vazio |
pd.DataFrame(columns=[...]) | Definir apenas os nomes das colunas |
pd.DataFrame({col: []}) | Definir colunas usando listas vazias |
pd.Series(dtype=...) | Definir nomes de colunas e dtypes (recomendado para fluxos de trabalho profissionais) |
pd.DataFrame.from_dict() | Igual ao método com dict; principalmente uma questão de estilo |
Como Criar um DataFrame Vazio (3 Métodos Clássicos + 1 Boa Prática Moderna)
Método 1: Usando o Construtor DataFrame()
A forma mais simples:
import pandas as pd
df = pd.DataFrame()
print(df)Saída:
Empty DataFrame
Columns: []
Index: []Para adicionar colunas depois:
df.columns = ['ProductID', 'ProductName', 'Description', 'Price']
dfMétodo 2: Usando um dict() de Listas Vazias
Esse método define os nomes das colunas mantendo o DataFrame vazio:
import pandas as pd
data = dict(ProductID=[], ProductName=[], Description=[], Price=[])
df = pd.DataFrame(data)
dfMétodo 3: Usando from_dict()
Equivalente ao método 2 — principalmente uma escolha de estilo:
import pandas as pd
data = {
'ProductID': [],
'ProductName': [],
'Description': [],
'Price': []
}
df = pd.DataFrame.from_dict(data)
df⭐ Método Moderno (Recomendado)
Criar um DataFrame Vazio com Nomes de Colunas e Tipos de Dados
No Pandas 2.x, a melhor prática é definir os tipos de coluna antecipadamente:
import pandas as pd
df = pd.DataFrame({
"ProductID": pd.Series(dtype="int"),
"ProductName": pd.Series(dtype="string"),
"Description": pd.Series(dtype="string"),
"Price": pd.Series(dtype="float"),
})
dfEssa abordagem é ideal quando:
✔ Você está carregando dados de APIs
✔ Quer tipos previsíveis
✔ Está construindo pipelines ETL
✔ Quer evitar avisos de dtype no futuro
Como Verificar se um DataFrame está Vazio
Use o atributo .empty:
df = pd.DataFrame()
print(df.empty) # True
non_empty = pd.DataFrame({"A": [1]})
print(non_empty.empty) # FalseConclusão
Criar um DataFrame vazio é uma tarefa fundamental no Pandas. Dependendo do seu fluxo de trabalho, você pode:
- criar um casco simples vazio
- inicializar colunas com nomes
- definir dtypes explícitos (recomendado para pipelines limpos)
- usar esquemas baseados em dict para melhor legibilidade
Agora você pode escolher com segurança o melhor método para o seu projeto e construir fluxos de trabalho com Pandas mais limpos e previsíveis.


