A biblioteca pandas do python é muito útil para a manipulação de dados matemáticos e é amplamente utilizada na área de Machine Learning. É composto por vários métodos para o seu funcionamento adequado. loc()
e iloc()
são dois desses métodos. Eles são usados para fatiar dados no DataFrame pandas. Eles ajudam na seleção conveniente de dados do DataFrame. Eles são usados para filtrar os dados de acordo com algumas condições. O funcionamento de ambos os métodos é explicado no conjunto de dados de amostra de carros.
import pandas as pd data = pd.DataFrame({ 'Marca': ['Maruti', 'Hyundai', 'Tata', 'Mahindra', 'Maruti', 'Hyundai', 'Renault', 'Tata', 'Maruti'], 'Ano': [2012, 2014, 2011, 2015, 2012, 2016, 2014, 2018, 2019], 'kms dirigido:': [50000, 30000, 60000, 25000, 10000, 46000, 31000, 15000, 12000], 'Cidade': ['Gurgaon', 'Delhi', 'Mumbai', 'Delhi', 'Mumbai', 'Delhi', 'Mumbai','Chennai', 'Ghaziabad'], 'Milhagem': [28, 27, 25, 26, 28, 29, 24, 21, 24] }) print(data)
Saída:
Marca Ano kms dirigido: Cidade Milhagem 0 Maruti 2012 50000 Gurgaon 28 1 Hyundai 2014 30000 Delhi 27 2 Tata 2011 60000 Mumbai 25 3 Mahindra 2015 25000 Delhi 26 4 Maruti 2012 10000 Mumbai 28 5 Hyundai 2016 46000 Delhi 29 6 Renault 2014 31000 Mumbai 24 7 Tata 2018 15000 Chennai 21 8 Maruti 2019 12000 Ghaziabad 24
loc(): loc()
é o método de seleção de dados baseado em rótulo, o que significa que temos que passar o nome da linha ou coluna que queremos selecionar. Este método inclui o último elemento do intervalo passado nele, ao contrário iloc()
. loc()
pode aceitar os dados booleanos ao contrário iloc()
. Muitas operações podem ser realizadas usando o método loc()
como:
1. Seleção de dados de acordo com algumas condições:
# mostra apenas linhas do dataframe onde o valor da coluna # Marca é Maruti e o valor da coluna Milhagem é maior que 25 print(data.loc[(data.Marca == 'Maruti') & (data.Milhagem > 25)])
Saída:
Marca Ano kms dirigido: Cidade Milhagem 0 Maruti 2012 50000 Gurgaon 28 4 Maruti 2012 10000 Mumbai 28
2. Selecionando um intervalo de linhas do DataFrame:
# selecionando o intervalo da linha 2 até a linha 5 print(data.loc[2:5])
Saída:
Marca Ano kms dirigido: Cidade Milhagem 2 Tata 2011 60000 Mumbai 25 3 Mahindra 2015 25000 Delhi 26 4 Maruti 2012 10000 Mumbai 28 5 Hyundai 2016 46000 Delhi 29
3. Atualizando o valor de qualquer coluna:
# Atualiza o valor da coluna Milhagem para 22 # se o valor da coluna ano for menor que 2015 data.loc[(data.Ano < 2015), ['Milhagem']] = 22 print(data)
Saída:
Marca Ano kms dirigido: Cidade Milhagem 0 Maruti 2012 50000 Gurgaon 22 1 Hyundai 2014 30000 Delhi 22 2 Tata 2011 60000 Mumbai 22 3 Mahindra 2015 25000 Delhi 26 4 Maruti 2012 10000 Mumbai 22 5 Hyundai 2016 46000 Delhi 29 6 Renault 2014 31000 Mumbai 22 7 Tata 2018 15000 Chennai 21 8 Maruti 2019 12000 Ghaziabad 24
iloc(): iloc()
é um método de seleção baseado em indexação, o que significa que temos que passar um índice inteiro no método para selecionar uma linha/coluna específica. Este método não inclui o último elemento do intervalo passado, ao contrário do loc()
. iloc()
não aceita os dados booleanos ao contrário loc()
. As operações realizadas por iloc()
são:
1. Seleção de linhas usando índices inteiros:
import pandas as pd data = pd.DataFrame({ 'Marca': ['Maruti', 'Hyundai', 'Tata', 'Mahindra', 'Maruti', 'Hyundai', 'Renault', 'Tata', 'Maruti'], 'Ano': [2012, 2014, 2011, 2015, 2012, 2016, 2014, 2018, 2019], 'kms dirigido:': [50000, 30000, 60000, 25000, 10000, 46000, 31000, 15000, 12000], 'Cidade': ['Gurgaon', 'Delhi', 'Mumbai', 'Delhi', 'Mumbai', 'Delhi', 'Mumbai','Chennai', 'Ghaziabad'], 'Milhagem': [28, 27, 25, 26, 28, 29, 24, 21, 24] }) # seleciona as linhas 0, 2, 4 e 7 do dataframe print(data.iloc[[0, 2, 4, 7]])
Saída:
Marca Ano kms dirigido: Cidade Milhagem 0 Maruti 2012 50000 Gurgaon 28 2 Tata 2011 60000 Mumbai 25 4 Maruti 2012 10000 Mumbai 28 7 Tata 2018 15000 Chennai 21
2. Selecionando um intervalo de colunas e linhas simultaneamente:
# Selecionando o intervalo de linhas de 1 a 4 # e selecionando o intervalo entre a segunda coluna # e a quarta print(data.iloc[1:5, 2:5])
Saída:
kms dirigido: Cidade Milhagem 1 30000 Delhi 27 2 60000 Mumbai 25 3 25000 Delhi 26 4 10000 Mumbai 28
Artigo escrito por vipul1501 e traduzido por Acervolima de Difference between loc() and iloc() in Pandas DataFrame.
0 comentários:
Postar um comentário