Enquanto estudava Pandas me surgiu uma dúvida; como eu passo uma linha de um DataFrame para uma lista?
Enquanto estudava Pandas me surgiu uma dúvida; como eu passo uma linha de um DataFrame para uma lista?
Olá Igor! Tudo bem com você?
Peço desculpas pela demora em dar um retorno.
Uma maneira seria utilizando o laço for
para fazer isso. Vamos fazer um exemplo:
# Criando um dataframe para ser utilizando de exemplo
import pandas as pd
dados = {
'Motor': ['Motor 4.0 Turbo', 'Motor Diesel', 'Motor Diesel V8', 'Motor Diesel', 'Motor 1.6'],
'Ano': [2019, 2003, 1991, 2019, 1990],
'Quilometragem': [0.0, 5712.0, 37123.0, 0.0, 120000.0],
'Zero_km': [True, False, False, True, False],
'Valor': [88000.0, 106000.0, 72000.0, 89000.0, 32000.0]
}
df = pd.DataFrame(dados, index = ['Jetta', 'Passat', 'Crossfox', 'DS5', 'Fusca'])
df.head()
Com esse código, temos o seguinte dataframe:
Motor | Ano | Quilometragem | Zero_km | Valor | |
---|---|---|---|---|---|
Jetta | Motor 4.0 Turbo | 2019 | 0 | True | 88000 |
Passat | Motor Diesel | 2003 | 5712 | False | 106000 |
Crossfox | Motor Diesel V8 | 1991 | 37123 | False | 72000 |
DS5 | Motor Diesel | 2019 | 0 | True | 89000 |
Fusca | Motor 1.6 | 1990 | 120000 | False | 32000 |
Agora, suponhamos que queremos pegar os dados da quarta linha e colocar em uma lista. Uma forma de fazer isso, seria a seguinte:
lista = []
for elemento in df.iloc[3, :]:
lista.append(elemento)
lista
Ou ainda:
lista = []
for elemento in df.loc['DS5', :]:
lista.append(elemento)
lista
De ambas as formas teremos como resultado:
['Motor Diesel', 2019, 0.0, True, 89000.0]
que é o conteúdo da linha 4 de index "DS5".
O iloc
e o loc
são métodos utilizados para selecionar colunas ou linhas específicas de um dataframe. O iloc seleciona por índice, enquanto o loc seleciona por nome da coluna ou linha. Em ambos, passamos os argumentos da seguinte forma:
# iloc
dataframe.iloc[indice_da_linha, indice_da_coluna]
# loc
dataframe.loc[nome_da_linha, nome_da_coluna]
Se quisermos que esses métodos retornem todas as linhas ou todas as colunas, basta utilizarmos os dois pontos (:) conforme utilizei nos exemplos mostrados anteriormente.
Vou deixar aqui o link das documentações desses dois métodos, caso você queira explorar um pouco mais:
Espero que tenha ajudado. Qualquer dúvida estou à disposição :)
Bons estudos!