7 Maneiras de Criar DataFrames com Pandas

Aprenda 7 maneiras de criar DataFrames com Pandas no Python e domine diferentes métodos para trabalhar com dados de forma eficiente e rápida.

Você pode criar DataFrames com Pandas de 7 formas: a partir de um arquivo CSV (pd.read_csv), de uma planilha Excel (pd.read_excel), da área de transferência (pd.read_clipboard), de um dicionário Python (pd.DataFrame), além de combinar DataFrames por linhas ou colunas com pd.concat e unir tabelas por uma chave com pd.merge.

7 Maneiras de Criar DataFrames com Pandas

Na aula de hoje, quero te mostrar 7 maneiras de criar DataFrames com Pandas no Python, para que você não tenha mais problemas na hora de gerar seus DataFrames ou precise ficar passando de um formato para o outro.

Veremos como criar DataFrames a partir de um arquivo, uma planilha, da área de transferência, de um dicionário e ainda como fazer a combinação de DataFrames de 3 formas diferentes.

Vou te ensinar a juntar linhas e colunas usando o merge para unir informações específicas e muito mais.

Já conhece alguma dessas formas de criar DataFrames? Quer aprender novas maneiras de criar DataFrames com Pandas? Então vem comigo que eu vou te mostrar!

Para fazer o download do(s) arquivo(s) utilizados na aula, preencha com o seu e-mail:

Não vamos te encaminhar nenhum tipo de SPAM! A Hashtag Treinamentos é uma empresa preocupada com a proteção de seus dados e realiza o tratamento de acordo com a Lei Geral de Proteção de Dados (Lei n. 13.709/18). Qualquer dúvida, nos contate.

Por que aprender a criar DataFrames com Pandas

O DataFrame é a estrutura de dados central do Pandas, permitindo armazenar dados em linhas e colunas de forma eficiente.

Aprender diferentes formas de criar DataFrames vai facilitar a leitura de arquivos, a manipulação de dados e a integração de múltiplas fontes de informação.

Instalação e Importação do Pandas

No material disponível para download, você encontrará o arquivo do Jupyter Notebook utilizado nesta aula, além das bases de dados utilizadas. É importante que você faça o download para acompanhar todas as etapas.

Para começar a trabalhar com o Pandas, é importante que você o tenha instalado no seu ambiente Python. Para instalá-lo, basta executar o seguinte comando no terminal do seu editor de códigos:

Python
pip install Pandas

Ou no Jupyter Notebook, execute o seguinte código em uma das células:

Python
!pip install pandas

Feita a instalação, basta importar o Pandas com o alias pd:

Python
import pandas as pd

Com isso, o Pandas estará pronto para ser utilizado.

Criando DataFrame a partir de um Arquivo

A primeira forma que quero apresentar para vocês é a criação do DataFrame a partir de um arquivo presente no computador.

O arquivo que vamos utilizar é uma base de dados sobre cereais disponíveis no mercado americano. Eu obtive essa base através do site Kaggle, que possui diversas bases de dados gratuitas para download.

Esse arquivo vem no formato CSV (Comma-Separated Values), que é uma forma comum de armazenar dados tabulares, e pode ser lido pelo Pandas através da função pd.read_csv() passando o nome do arquivo como argumento.

Python
df_csv = pd.read_csv("cereal.csv")

É importante ressaltar que só é possível utilizar apenas o nome do arquivo porque ele está na mesma pasta que o arquivo do meu código. Caso ele estivesse em outra pasta, seria necessário passar o caminho completo.

Armazenamos esse DataFrame gerado dentro da variável df_csv, e para ter certeza de que ele foi gerado corretamente, podemos utilizar o método head(), que exibe as cinco primeiras linhas presentes nele.

Python
df_csv = pd.read_csv("cereal.csv")

df_csv.head()
Head Pandas

Também podemos verificar as cinco últimas linhas utilizando o método tail().

Python
df_csv.tail()
Tail Pandas

O que é um arquivo CSV?

É muito comum, ao trabalharmos com bases de dados, encontrarmos arquivos CSV (Comma-Separated Values).

O CSV significa "valores separados por vírgula". Basicamente, são arquivos de texto onde cada linha representa a entrada de um valor, e esses valores são separados por um caractere delimitador, geralmente uma vírgula.

Quando passamos esse arquivo para o Pandas, ele consegue interpretar essas vírgulas como delimitadores e organizar as informações em linhas e colunas corretamente.

Criando DataFrame a partir de uma Planilha

Outra maneira semelhante à importação via CSV é através de planilhas Excel (formato XLSX). Mas, ao invés de utilizarmos a função pd.read_csv(), iremos utilizar a pd.read_excel().

Python
df_excel = pd.read_excel("cereal.xlsx")

Executando o método head(), podemos verificar que nosso DataFrame foi criado corretamente.

Python
df_excel.head()
Abrindo arquivo XLSX

Funções de Leitura do Pandas

É muito comum encontrarmos arquivos em CSV ou XLSX ao trabalharmos com o Pandas, porém ele possui diversas funções de leitura além dessas.

Caso você queira visualizar todas as funções disponíveis, além de consultar a documentação, você pode digitar dentro da célula no Jupyter Notebook o comando pd.read_ e em seguida apertar a tecla Tab.

Isso exibirá uma lista das funções de leitura disponíveis para o Pandas.

lista das funções de leitura disponíveis para o Pandas

Algumas são menos comuns de serem utilizadas, mas temos muitas opções que você pode acabar encontrando como HTML, JSON e SQL.

Criando DataFrame a partir da Área de Transferência

Repare que uma das funções de leitura do Pandas é a clipboard, isso significa que outra maneira de você criar um DataFrame no Pandas é através da área de transferência do seu computador.

Quando você dá Ctrl + C em alguma informação no seu computador, essa informação fica armazenada na área de transferência.

Utilizando a função read_clipboard(), é possível gerar um DataFrame a partir dos dados presentes na área de transferência.

Para exemplificarmos esse processo, vamos abrir o arquivo Excel com a nossa base de dados e vamos copiar um conjunto de células dele com Ctrl + C.

Planilha Excel

Feito isso, dentro do notebook podemos criar o nosso DataFrame a partir da função read_clipboard(). E para essa função não precisamos passar nenhum argumento.

Python
df_transferencia = pd.read_clipboard()

df_transferencia
Gerado a partir da área de transferência

Isso pode ser interessante quando você está trabalhando com algum arquivo Excel muito extenso e você só quer ter uma ideia de como ficaria a análise feita com Pandas. Então, ao invés de precisar importar todo o arquivo, você pode importar apenas uma parte.

Criando DataFrame a partir de Dicionários Python

Outra forma bastante eficaz de criar DataFrames é através de dicionários Python. Você define qual é seu dicionário primeiro e em seguida pode passar esse dicionário para a classe DataFrame do Pandas.

Python
funcionarios = {
    'Nome': ['João Silva', 'Maria Souza', 'José Ramos', 'Pedro Ferreira'],
    'Idade': [35, 40, 54, 39],
    'Tempo de Empresa': [3, 10, 15, 7],
}

df_dicionario = pd.DataFrame(funcionarios)

Ao passar seu dicionário para essa classe, ele será rapidamente estruturado no formato de um DataFrame.

Python
df_dicionario
DataFrame a partir do dicionário

Essa abordagem pode ser útil para demonstrar visualmente como ficaria a estrutura de dados em um DataFrame ou realizar análises preliminares antes de trabalhar com conjuntos maiores de dados.

Ícone Ciência de DadosCiência de Dados Impressionador

Se você quiser sair do zero até o nível avançado e aprender absolutamente tudo o que você precisa para usar Ciência de Dados para se destacar no Mercado de Trabalho e poder entrar nas carreiras mais promissoras e desejadas nas empresas, esse curso é pra você.

Começar agoraSeta para a direita
Fundo Ciência de DadosTelas Ciência de Dados
Luz Ciência de Dados

Combinando DataFrames - Combinação de Linhas de Diferentes DataFrames

A partir de agora, iremos começar a trabalhar com mais de um DataFrame. É comum, conforme os projetos avançam, termos diversas fontes distintas de dados. E por isso, é muito importante saber combinar essas informações.

Um primeiro exemplo que vamos ver é quando queremos juntar dois DataFrames de forma sequencial. Ou seja, quando queremos que as linhas de um, virem as linhas do outro.

Para visualizarmos essa combinação, vamos continuar utilizando o DataFrame gerado pelo exemplo anterior, e criaremos um novo a partir de um outro dicionário.

Python
mais_funcionarios = {
    'Nome': ['Paula Lima', 'Marta Nunes'],
    'Idade': [28, 45],
    'Tempo de Empresa': [5, 12],
}

df_mais_funcionarios = pd.DataFrame(mais_funcionarios)

df_mais_funcionarios
Segundo dataframe de funcionários

Observe que ambos os DataFrames possuem a mesma estrutura, com as mesmas colunas e tipos de dados.

Para juntar esses dois DataFrames em um único, utilizaremos o método concat do Pandas, passando uma lista com os DataFrames desejados.

Python
df_funcionarios = pd.concat([df_dicionario, df_mais_funcionarios])

df_funcionarios
Dataframe unido pelas linhas

Repare que, apesar de unir os dois em um único DataFrame, o índice numérico ficou desorganizado.

Para mantermos a contagem numérica do índice sequencial, podemos passar o parâmetro ignore_index=True para o método concat. Assim, a contagem numérica será reiniciada sequencialmente quando o DataFrame for gerado.

Python
# resetando o index
df_funcionarios = pd.concat([df_dicionario, df_mais_funcionarios], ignore_index=True)

df_funcionarios

Isso é importante para evitar repetições no índice e nos permitir selecionar os dados corretamente.

Combinando DataFrames - Combinação de Colunas de Diferentes DataFrames

Além da concatenação por linhas, é possível combinar DataFrames que se complementem pelas colunas presentes neles.

Para demonstrar esse exemplo, vamos utilizar a biblioteca NumPy, uma biblioteca essencial para operações numéricas e pré-requisito do Pandas.

Utilizando o módulo random do NumPy, iremos gerar valores aleatórios para um dicionário e depois converter esse dicionário em um DataFrame.

Primeiro, definiremos os setores da empresa dentro de uma lista. O dicionário que será utilizado para criar o DataFrame terá duas chaves: Setor e Salario.

Para gerar os valores associados ao Setor, iremos utilizar a função np.random.choice, passando para ela a lista de setores e o número 6, que indica a quantidade de vezes que queremos que esses setores sejam escolhidos.

Os salários serão gerados de forma semelhante, mas para eles utilizaremos a função np.random.randint, que gera valores inteiros aleatórios dentro do intervalo determinado.

Precisamos informar o valor inicial e final do intervalo e a quantidade de números que devem ser gerados.

Depois disso, podemos criar nosso DataFrame.

Python
import numpy as np

setores = ['Vendas', 'RH', 'TI']

dados_funcionarios = {
    'Setor': np.random.choice(setores, 6),
    'Salario': np.random.randint(2000, 10000, size=6),
}

df_dados_funcionarios = pd.DataFrame(dados_funcionarios)

df_dados_funcionarios
Combinação de Colunas de Diferentes DataFrames

Repare que como são dados aleatórios, cada vez que você gerar os dados, você terá um DataFrame resultante diferente.

Com esse DataFrame gerado, podemos combiná-lo com o df_funcionarios que geramos anteriormente. Assim, teremos em um único DataFrame as informações de Nome, Idade, Tempo de Empresa, Setor e Salário dos funcionários.

Para realizar a união pelas colunas, utilizaremos a função concat, especificando o eixo das colunas.

Python
df_funcionarios_completo = pd.concat([df_funcionarios, df_dados_funcionarios], axis='columns')

df_funcionarios_completo
Combinação de Colunas de Diferentes DataFrames

Isso só faz sentido caso ambos os DataFrames estejam organizados seguindo a mesma ordem. Ou seja, a primeira linha do segundo DataFrame é correspondente à primeira linha do primeiro.

Juntar DataFrames com Merge

Existe uma outra maneira de juntarmos dois DataFrames no Pandas que é utilizando a função merge().

Vamos ver um exemplo bem parecido com o anterior, porém agora, dentro dos DataFrames teremos uma mesma coluna chamada "id" que será um código de identificação do funcionário.

Python
funcionarios = {
    'id': ['FTI1', 'FVE2', 'FRH1', 'FVE1'],
    'Nome': ['João Silva', 'Maria Souza', 'José Ramos', 'Pedro Ferreira'],
    'Idade': [35, 40, 54, 39],
    'Tempo de Empresa': [3, 10, 15, 7],
}

df_funcionarios = pd.DataFrame(funcionarios)

df_funcionarios
Primeiro DataFrame
Python
dados_funcionarios = {
    'id': ['FVE1', 'FRH1', 'FTI1', 'FVE2'],
    'Setor': ['Vendas', 'RH', 'TI', 'Vendas'],
    'Salario': np.random.randint(2000, 10000, size=4),
}

df_dados_funcionarios = pd.DataFrame(dados_funcionarios)

df_dados_funcionarios
Segundo DataFrame

Os ids são identificadores únicos que estarão presentes em diversas bases de dados. Essa é uma abordagem comum dos bancos de dados para identificar elementos únicos dentro dele, evitando duplicações e garantindo a integridade dos dados.

Podemos comparar o id de uma entrada em uma base de dados com o CPF no Brasil, que é um identificador único para cada cidadão.

Os identificadores são muito úteis quando você deseja unir as informações de dois bancos de dados que estão em ordens diferentes.

Nesse nosso exemplo, o id está sendo utilizado para identificar cada um dos vendedores presentes na empresa.

Se utilizássemos a função concat para unir esses dois DataFrames, teríamos as informações de Setor e Salário atribuídas de forma incorreta aos funcionários, porque a função concat iria considerar a ordem das linhas e não o id.

Para garantir que o setor e o salário estejam corretos para cada um dos funcionários podemos utilizar a função merge().

O merge é preferível ao concat quando não temos certeza sobre a ordem dos dados presentes. Como o merge utiliza um critério específico (identificar único) para unir os DataFrames, isso garante a precisão das informações.

Na prática, você lidará muito mais com o merge do que com o concat. Isso porque as bases de dados dentro das empresas possuem algum identificador único que permita o relacionamento das informações contidas nelas.

O parâmetro que irá receber o nome da coluna que contém o critério específico para essa junção será o parâmetro on.

Python
df_funcionarios_completo = pd.merge(df_funcionarios, df_dados_funcionarios, on='id')

df_funcionarios_completo
DataFrame unido pelo Merge

Perceba que o DataFrame final possui apenas uma coluna "id" e as informações foram atribuídas corretamente.

Perguntas frequentes

1. Como criar um DataFrame a partir de um arquivo CSV?

Use a função pd.read_csv(), passando o nome do arquivo como argumento, por exemplo pd.read_csv('cereal.csv'). Se o arquivo estiver em outra pasta, informe o caminho completo. Para conferir se o DataFrame foi criado corretamente, use o método head(), que exibe as cinco primeiras linhas da tabela.

2. Qual a diferença entre concat e merge no Pandas?

O concat junta DataFrames pela ordem das linhas ou colunas, empilhando os dados. Já o merge combina tabelas com base em uma coluna em comum (uma chave, como um id), garantindo que as informações fiquem alinhadas corretamente. Na prática, o merge é mais usado quando existe um identificador único entre as bases.

3. Como criar um DataFrame a partir de um dicionário Python?

Primeiro defina um dicionário Python, em que cada chave vira uma coluna e os valores viram as linhas. Depois passe esse dicionário para a classe pd.DataFrame(), como em pd.DataFrame(funcionarios). O Pandas estrutura os dados automaticamente no formato de tabela. É uma forma prática para testar análises com pequenos conjuntos de dados.

4. Como instalar e importar o Pandas no Python?

Para instalar o Pandas, execute pip install pandas no terminal do seu editor, ou !pip install pandas em uma célula do Jupyter Notebook. Depois, importe a biblioteca usando o apelido padrão pd, com import pandas as pd. A partir daí, o Pandas fica pronto para criar e manipular seus DataFrames.

Conclusão – 7 Maneiras de Criar DataFrames com Pandas

Na aula de hoje, eu te mostrei 7 maneiras de criar DataFrames com Pandas no Python! Vimos como gerar DataFrames a partir de um arquivo, uma planilha, da área de transferência, de um dicionário e ainda como fazer a combinação de DataFrames.

Dessa forma, você conseguirá trabalhar sem problemas com bases de dados de diferentes fontes para gerar os seus DataFrames de forma fácil e rápida.

Caso prefira esse conteúdo no formato de vídeo-aula, assista ao vídeo abaixo ou acesse o nosso canal do YouTube!

O que você aprende neste vídeo

Resposta rápida: A aula apresenta sete formas de criar ou compor DataFrames com Pandas: ler CSV, ler Excel, usar a área de transferência, converter um dicionário, concatenar linhas, concatenar colunas e mesclar tabelas por uma chave. Os exemplos também explicam ignore_index, dados aleatórios e quando preferir merge a concat.

Neste vídeo (33 min):

  • 2:00 - Criação de um DataFrame de arquivo CSV com pd.read_csv()
  • 4:00 - Leitura da mesma base em formato Excel com pd.read_excel()
  • 5:00 - Descoberta de outras funções read_* disponíveis no Pandas
  • 6:00 - Criação a partir de células copiadas com pd.read_clipboard()
  • 8:00 - Estruturação de dados de funcionários em um dicionário Python
  • 11:00 - Preparação de um segundo DataFrame com a mesma estrutura do primeiro
  • 13:00 - Empilhamento de linhas com pd.concat([df1, df2])
  • 14:00 - Uso de ignore_index=True para reconstruir o índice sequencial
  • 16:00 - Criação de colunas complementares com setores e salários aleatórios
  • 22:00 - Concatenação lado a lado com axis='columns'
  • 24:00 - Uso de um identificador único quando as linhas das bases estão em ordens diferentes
  • 30:00 - Mesclagem com pd.merge(..., on='ID') para alinhar os registros pela chave

Trechos do vídeo:

  • As chaves de um dicionário viram colunas e as listas associadas fornecem os valores do DataFrame.
  • concat é adequado para empilhar estruturas compatíveis ou combinar colunas já alinhadas.
  • merge relaciona linhas por um identificador e não depende da ordem em que elas aparecem.

Hashtag Treinamentos

Para acessar outras publicações de Ciência de Dados, clique aqui!


Quer aprender mais sobre Python com um minicurso básico gratuito?

Posts mais recentes de Ciência de Dados

Posts mais recentes da Hashtag Treinamentos