Criando DataFrames do Pandas
Aprenda a criar DataFrames do Pandas. Realize operações com dados e aprenda a criar DataFrames de diferentes fontes.
O DataFrame
do Pandas
é uma estrutura de dados bidimensional em forma de tabelas, semelhante a uma tabela em SQL
ou até com uma planilha do Excel
, ou do Google Sheets
.
Um DataFrame
é composto por três componentes principais: dados, linhas e colunas.
Abaixo temos um exemplo de uma tabela que poderia ser representada em um DataFrame
:
Estado | Sigla | População | Capital | |
---|---|---|---|---|
0 | Acre | AC | 803,5 mil | Rio Branco |
1 | Amapá | AP | 776,6 mil | Macapá |
2 | Amazonas | AM | 3,9 milhões | Manaus |
3 | Pará | PA | 8,1 milhões | Belém |
4 | Rondônia | RO | 1,7 milhão | Porto Velho |
5 | Roraima | RR | 505,6 mil | Boa Vista |
6 | Tocantins | TO | 1,5 milhão | Palmas |
Representado em uma DataFrame
a saída seria semelhante ao exibido abaixo:
Estado Sigla População Capital
0 Acre AC 803,5 mil Rio Branco
1 Amapá AP 776,6 mil Macapá
2 Amazonas AM 3,9 milhões Manaus
3 Pará PA 8,1 milhões Belém
4 Rondônia RO 1,7 milhão Porto Velho
5 Roraima RR 505,6 mil Boa Vista
6 Tocantins TO 1,5 milhão Palmas
Criando um DataFrame do Pandas
Um DataFrame
do Pandas
pode ser criado carregando um conjunto de dados(chamado dataset
) de alguma fonte externa.
Essa fonte pode ser um banco de dados em SQL
, uma planilha do Excel
, um arquivo CSV
ou praticamente qualquer outra
forma em que seja possível armazenar algo como uma tabela.
Também podemos criar um DataFrame
a partir de uma estrutura de dados nativa do Python
, como uma lista
ou um dicionário.
Criando um DataFrame utilizando listas
Uma forma simples de se criar um DataFrame
, é utilizando listas.
Podemos montar um DataFrame
com os estados da região norte do Brasil com uma lista da seguinte forma:
import pandas as pd
estados = ['Acre',
'Amapá',
'Amazonas',
'Pará',
'Rondônia',
'Roraima',
'Tocantins']
df = pd.DataFrame(estados)
print(df)
A saída será:
0
0 Acre
1 Amapá
2 Amazonas
3 Pará
4 Rondônia
5 Roraima
6 Tocantins
Poderíamos definir o nome da coluna com o argumento columns
, da seguinte forma:
import pandas as pd
estados = ['Acre',
'Amapá',
'Amazonas',
'Pará',
'Rondônia',
'Roraima',
'Tocantins']
df = pd.DataFrame(estados, columns=['estados'])
print(df)
A saída será:
estados
0 Acre
1 Amapá
2 Amazonas
3 Pará
4 Rondônia
5 Roraima
6 Tocantins
Também podemos utilizar uma lista de listas para montar um DataFrame
com várias colunas:
import pandas as pd
capitais = [['Acre', 'AC', '803,5 mil', 'Rio Branco'],
['Amapá', 'AP', '776,6 mil', 'Macapá'],
['Amazonas', 'AM', '3,9 milhões', 'Manaus'],
['Pará', 'PA', '8,1 milhões', 'Belém'],
['Rondônia', 'RO', '1,7 milhão', 'Porto Velho'],
['Roraima', 'RR', '505,6 mil', 'Boa Vista'],
['Tocantins', 'TO', '1,5 milhão', 'Palmas']]
df = pd.DataFrame(capitais, columns=['Estado', 'Sigla', 'População', 'Capital'])
print(df)
A saída será:
Estado Sigla População Capital
0 Acre AC 803,5 mil Rio Branco
1 Amapá AP 776,6 mil Macapá
2 Amazonas AM 3,9 milhões Manaus
3 Pará PA 8,1 milhões Belém
4 Rondônia RO 1,7 milhão Porto Velho
5 Roraima RR 505,6 mil Boa Vista
6 Tocantins TO 1,5 milhão Palmas
Criando um DataFrame utilizando dicionários
Outra forma de se criar um DataFrame
é utilizando dicionários.
Podemos fazer um dicionário, onde cada chave representa uma coluna, com as linhas sendo representadas por outro dicionário onde cada chave representa o indice da linha.
import pandas as pd
capitais = {'Estado': {0: 'Acre',
1: 'Amapá',
2: 'Amazonas',
3: 'Pará',
4: 'Rondônia',
5: 'Roraima',
6: 'Tocantins'},
'Sigla': {0: 'AC',
1: 'AP',
2: 'AM',
3: 'PA',
4: 'RO',
5: 'RR',
6: 'TO'},
'População': {0: '803,5 mil',
1: '776,6 mil',
2: '3,9 milhões',
3: '8,1 milhões',
4: '1,7 milhão',
5: '505,6 mil',
6: '1,5 milhão'},
'Capital': {0: 'Rio Branco',
1: 'Macapá',
2: 'Manaus',
3: 'Belém',
4: 'Porto Velho',
5: 'Boa Vista',
6: 'Palmas'}}
df = pd.DataFrame(capitais)
print(df)
A saída será:
Estado Sigla População Capital
0 Acre AC 803,5 mil Rio Branco
1 Amapá AP 776,6 mil Macapá
2 Amazonas AM 3,9 milhões Manaus
3 Pará PA 8,1 milhões Belém
4 Rondônia RO 1,7 milhão Porto Velho
5 Roraima RR 505,6 mil Boa Vista
6 Tocantins TO 1,5 milhão Palmas
Podemos também fazer um dicionário, onde cada chave representa uma coluna, com as linhas sendo representadas por uma lista.
import pandas as pd
capitais = {'Estado': ['Acre',
'Amapá',
'Amazonas',
'Pará',
'Rondônia',
'Roraima',
'Tocantins'],
'Sigla': ['AC',
'AP',
'AM',
'PA',
'RO',
'RR',
'TO'],
'População': ['803,5 mil',
'776,6 mil',
'3,9 milhões',
'8,1 milhões',
'1,7 milhão',
'505,6 mil',
'1,5 milhão'],
'Capital': ['Rio Branco',
'Macapá',
'Manaus',
'Belém',
'Porto Velho',
'Boa Vista',
'Palmas']}
df = pd.DataFrame(capitais)
print(df)
A saída será:
Estado Sigla População Capital
0 Acre AC 803,5 mil Rio Branco
1 Amapá AP 776,6 mil Macapá
2 Amazonas AM 3,9 milhões Manaus
3 Pará PA 8,1 milhões Belém
4 Rondônia RO 1,7 milhão Porto Velho
5 Roraima RR 505,6 mil Boa Vista
6 Tocantins TO 1,5 milhão Palmas
Outra forma de fazer, que é a minha favorita, é utilizando uma lista de dicionários.
import pandas as pd
capitais = [
{'Estado': 'Acre',
'Sigla': 'AC',
'População': '803,5 mil',
'Capital': 'Rio Branco'},
{'Estado': 'Amapá',
'Sigla': 'AP',
'População': '776,6 mil',
'Capital': 'Macapá'},
{'Estado': 'Amazonas',
'Sigla': 'AM',
'População': '3,9 milhões',
'Capital': 'Manaus'},
{'Estado': 'Pará',
'Sigla': 'PA',
'População': '8,1 milhões',
'Capital': 'Belém'},
{'Estado': 'Rondônia',
'Sigla': 'RO',
'População': '1,7 milhão',
'Capital': 'Porto Velho'},
{'Estado': 'Roraima',
'Sigla': 'RR',
'População': '505,6 mil',
'Capital': 'Boa Vista'},
{'Estado': 'Tocantins',
'Sigla': 'TO',
'População': '1,5 milhão',
'Capital': 'Palmas'}
]
df = pd.DataFrame(capitais)
print(df)
A saída será:
Estado Sigla População Capital
0 Acre AC 803,5 mil Rio Branco
1 Amapá AP 776,6 mil Macapá
2 Amazonas AM 3,9 milhões Manaus
3 Pará PA 8,1 milhões Belém
4 Rondônia RO 1,7 milhão Porto Velho
5 Roraima RR 505,6 mil Boa Vista
6 Tocantins TO 1,5 milhão Palmas
Selecionando apenas algumas colunas do DataFrame
Caso o objetivo seja selecionar apenas o estado e a capital, poderiamos fazer de forma simples, selecionando pelo nome da coluna.
import pandas as pd
capitais = {'Estado': ['Acre', 'Amapá', 'Amazonas', 'Pará', 'Rondônia', 'Roraima', 'Tocantins'],
'Sigla': ['AC', 'AP', 'AM', 'PA', 'RO', 'RR', 'TO'],
'População': ['803,5 mil', '776,6 mil', '3,9 milhões', '8,1 milhões', '1,7 milhão', '505,6 mil',
'1,5 milhão'],
'Capital': ['Rio Branco', 'Macapá', 'Manaus', 'Belém', 'Porto Velho', 'Boa Vista', 'Palmas']}
df = pd.DataFrame(capitais)
print(df[['Estado', 'Capital']])
A saída será:
Estado Capital
0 Acre Rio Branco
1 Amapá Macapá
2 Amazonas Manaus
3 Pará Belém
4 Rondônia Porto Velho
5 Roraima Boa Vista
6 Tocantins Palmas
Selecionando apenas algumas linhas do DataFrame
Para selecionar linhas, podemos utilizar o método loc
passando o rótulo da linha, para selecionar a linha 0
poderiamos fazer:
import pandas as pd
capitais = {'Estado': ['Acre', 'Amapá', 'Amazonas', 'Pará', 'Rondônia', 'Roraima', 'Tocantins'],
'Sigla': ['AC', 'AP', 'AM', 'PA', 'RO', 'RR', 'TO'],
'População': ['803,5 mil', '776,6 mil', '3,9 milhões', '8,1 milhões', '1,7 milhão', '505,6 mil',
'1,5 milhão'],
'Capital': ['Rio Branco', 'Macapá', 'Manaus', 'Belém', 'Porto Velho', 'Boa Vista', 'Palmas']}
df = pd.DataFrame(capitais)
print(df.loc[0])
A saída será:
Estado Acre
Sigla AC
População 803,5 mil
Capital Rio Branco
Name: 0, dtype: object
Para selecionar a linha pelo índice, podemos utilizar outro método, o iloc
que funciona de forma semelhante, porém
utilizar o índice e não o rótulo como parâmetro.
import pandas as pd
capitais = {'Estado': ['Acre', 'Amapá', 'Amazonas', 'Pará', 'Rondônia', 'Roraima', 'Tocantins'],
'Sigla': ['AC', 'AP', 'AM', 'PA', 'RO', 'RR', 'TO'],
'População': ['803,5 mil', '776,6 mil', '3,9 milhões', '8,1 milhões', '1,7 milhão', '505,6 mil',
'1,5 milhão'],
'Capital': ['Rio Branco', 'Macapá', 'Manaus', 'Belém', 'Porto Velho', 'Boa Vista', 'Palmas']}
df = pd.DataFrame(capitais)
print(df.iloc[0])
A saída será:
Estado Acre
Sigla AC
População 803,5 mil
Capital Rio Branco
Name: 0, dtype: object
Para selecionar multiplas linhas, podemos fazer de forma semelhante a quando queremos extrair uma sublista de uma lista,
utilizando o operador :
.
No exemplo abaixo é selecionar da linha 1 até a linha 3.
import pandas as pd
capitais = {'Estado': ['Acre', 'Amapá', 'Amazonas', 'Pará', 'Rondônia', 'Roraima', 'Tocantins'],
'Sigla': ['AC', 'AP', 'AM', 'PA', 'RO', 'RR', 'TO'],
'População': ['803,5 mil', '776,6 mil', '3,9 milhões', '8,1 milhões', '1,7 milhão', '505,6 mil',
'1,5 milhão'],
'Capital': ['Rio Branco', 'Macapá', 'Manaus', 'Belém', 'Porto Velho', 'Boa Vista', 'Palmas']}
df = pd.DataFrame(capitais)
print(df.iloc[1:3])
A saída será:
Estado Sigla População Capital
1 Amapá AP 776,6 mil Macapá
2 Amazonas AM 3,9 milhões Manaus