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
