Esta lista de exercícios resolvidos é um manual para ajudar todo aluno iniciante e não só, a adquirir e aprimorar as habilidades necessárias para se trabalhar com Python, de forma rápida e consistente. Estude e desfrute do conteúdo. 1º Exercício Faça um programa que informe a versão do Python que você está utilizando Solução import sys print ( "Versão do Python" ) print (sys.version) print ( "Informação da versão instalada" ) print (sys.version_info) Atenção : - O módulo sys fornece funções e variáveis usadas para manipular diferentes partes do ambiente de tempo de execução do Python; - Pra quem ainda não está familiarizado com a linguagem, um módulo é um arquivo contendo definições e comandos em Python para serem usados em outros programas. 2º Exercício Faça um programa em linguagem Python que converta metros para centímetros. Solução print ( ' \t ----Conversão de medida---- ' ) metros = int ( in...
Em muitos casos, a gente tem um Dataframe e deseja extrair apenas as linhas e colunas que achamos serem úteis. Para isso, utilizamos a indexação direta. Essa indexação tem esse nome porque não precisamos acessar nenhum método em si, é só colocamos o nome da coluna entre os colchetes. Neste tutorial, você vai ver que além da indexação direta, existem alguns métodos de indexação dentro do Pandas que ajudam a obter um elemento(linha ou coluna) de um DataFrame.
Indexação direta
Exemplo:
Criei um DataFrame utilizando dicionário em Python
import pandas as pd
meu_dataframe=pd.DataFrame(
{ 'Nome': {0: 'Araújo', 1: 'Victor', 2: 'Catumbela', 3: 'Moisés', 4: 'Mendrote'},
' Disciplinas favoritas': {0: 'Linguagem Python', 1: 'Matemática',
2: 'Estatistica', 3: 'Política', 4: 'Linguagem SQL'} })
print(meu_dataframe)
Executando o script , tenho a seguinte saída
Vou indexar a coluna" nome", do DataFrame "meu_dataframe". Para isso, simplesmente colocamos o nome da coluna entre os colchetes. Observe o print do DataFrame "dataframe_indexado".
import pandas as pd
meu_dataframe=pd.DataFrame(
{ 'Nome': {0: 'Araújo', 1: 'Victor', 2: 'Catumbela', 3: 'Moisés', 4: 'Mendrote'},
' Disciplinas favoritas': {0: 'Linguagem Python', 1: 'Matemática',
2: 'Estatistica', 3: 'Política', 4: 'Linguagem SQL'} })
print(meu_dataframe)
print('********************************')
dataframe_indexado =meu_dataframe['Nome']
print(dataframe_indexado)
Com isso, o dataframe_indexado só vai retornar uma coluna, que é a coluna "Nome"
Em muitos casos, a gente quer ir além. Queremos pegar uma linha específica, uma coluna especifica e para isso, existem métodos nativos do Pandas que vão nos auxiliar nessas tarefas.
Métodos: iloc() e loc() - Linguagem Python
A biblioteca Pandas do Python é composta por vários métodos. loc() e iloc() são dois desses métodos. Eles são usados para fatiar dados no DataFrame Pandas. Eles são usados para filtrar os dados de acordo com algumas condições.
Método iloc()
É um método que permite você acessar um DataFrame a partir do índice da linha e da coluna. Esse método recebe um valor inteiro(int) para acessar a linha ou coluna.
Eu vou pegar a terceira linha do DataFrame anterior(meu_dataframe). A contagem começa em zero.
Inserindo o metodo iloc() na função print():
print(meu_dataframe.iloc[2,0])
Ao executar o código, temos o nome "Catumbela" como retorno pois, a função iloc() trouxe a terceira linha da 1ª coluna.
- Acessando múltiplas Linhas com iloc()
Sintaxe do método iloc() |
Observação: o índice final é o índice menos 1, ou seja, se você quiser trazer 3 linhas , você deve colocar o índice final como sendo a 4.ª linha.
Exemplo: Eu tenho esse DataFrame
print(meu_dataframe.iloc[0:3,1:3])
Executando o código:
É um metodo que permite acessar o DataFrame a partir do nome, diferente do iloc() que acessa pelo índice da linha ou coluna. Em outras palavras, significa que quando trabalhamos com loc(), temos que passar o nome da linha ou coluna que queremos selecionar.
O método loc() recebe como parâmetro, uma string(str) ou lista(list).
Eu criei esse DataFrame utilizando dicionário em Python.
import pandas as pd
meu_dataframe=pd.DataFrame(
{ 'Nome': {0: 'Araújo', 1: 'Victor', 2: 'Catumbela', 3: 'Moisés', 4: 'Mendrote'},
'Disciplinas favoritas': {0: 'Linguagem Python', 1: 'Matemática',
2: 'Estatistica', 3: 'Política', 4: 'Linguagem SQL'} ,
'Professores':{ 0: 'Abel',1:'Luxemburgo',2:'Jair',3:'Pedro',4:'João'} })
print(meu_dataframe)
Executando o script , tenho a seguinte saída:1º Exemplo - Método loc()
Mostrar as linhas onde a coluna "Disciplinas favoritas" é igual a "Estatistica".
Vou imprimir esse DataFrame com a condição desejada:
print(meu_dataframe.loc[(meu_dataframe['Disciplinas favoritas']=='Estatistica')])
Executando o código, teremos o seguinte resultado:
2º Exemplo - Método loc()
Selecionar todas as linhas e trazer somente as colunas: Disciplinas favoritas" e "Professores".
print(meu_dataframe.loc[ : , ['Disciplinas favoritas','Professores']])
Executando o script , tenho a seguinte saída:
Método loc() que retorna uma lista de colunas |
3º Exemplo - Método loc()
Selecionar todas as linhas e trazer as colunas começando pela : Disciplinas favoritas" em diante.
print(meu_dataframe.loc[ : , 'Disciplinas favoritas':])
Executando o script , tenho a seguinte saída:
4º Criar a coluna "Data_insercao" e filtrar o DataFrame , considerando os dados inseridos até o mês de Março.Criando o DataFrame
import pandas as pd
meu_dataframe=pd.DataFrame(
{ 'Nome': {0: 'Araújo', 1: 'Victor', 2: 'Catumbela', 3: 'Moisés', 4: 'Mendrote'},
'Disciplinas favoritas': {0: 'Linguagem Python', 1: 'Matemática',
2: 'Estatistica', 3: 'Política', 4: 'Linguagem SQL'} ,
'Professores':{ 0: 'Abel',1:'Luxemburgo',2:'Jair',3:'Pedro',4:'João'},
'Data_insercao': {0:'2021-01-01',1:'2023-04-12',2:'2023-05-15',3:'2023-03-10',4:'2023-02-11'} })
print(meu_dataframe)
Executando o script , tenho a seguinte saída:
Eu inseri uma coluna do tipo Date mas será que o Pandas atribuiu o tipo correto?
Eu vou executar o comando dtypes para ver os tipos de dados do meu DataFrame. Se a coluna "Data_insercao" não estiver como datetime, tenho que fazer uma transformação para que ela seja do tipo datetime.
Consultando o tipo de dados das minhas colunas
print(meu_dataframe.dtypes)
Resultado
A coluna "Data_insercao" está como object por isso, preciso converter para datetime. O tipo de verificação que a gente está fazendo, não funciona para colunas do tipo object.
- Convertendo o tipo de dados
meu_dataframe['Data_insercao']=pd.to_datetime(meu_dataframe['Data_insercao'])
print(meu_dataframe.dtypes)
Executando o script , tenho a seguinte saída:
Após essa conversão, precisamos setar a coluna Data_insercao como nosso índex para que a gente possa acessar o DataFrame por meio da data.
- Setando o índice
meu_dataframe=meu_dataframe.set_index('Data_insercao')
- Selecionando as entradas até Março de 2023
condicao = meu_dataframe.index < '2023-04-01'
print(meu_dataframe.loc[condicao ,['Disciplinas favoritas','Professores']])
Executando o script , tenho a seguinte saída:
#LinguagemPython #BibliotecaPandas #SeriesTemporais #introdução_LinguagemPython #PythonLanguage #ComoAprenderPython #ExercíciosdePython #pip_em_python #arquivo_CSV #DataFrame #DataFrame_em_python #indexaçao_com_pandas
Comentários
Postar um comentário