Skip to content

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)
KaggleColabGitHub

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étodoMelhor 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']
df

Mé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)
df

Mé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"),
})
 
df

Essa 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)  # False

Conclusã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.