Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Linha de DataFrame para uma lista

Enquanto estudava Pandas me surgiu uma dúvida; como eu passo uma linha de um DataFrame para uma lista?

1 resposta
solução!

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:

MotorAnoQuilometragemZero_kmValor
JettaMotor 4.0 Turbo20190True88000
PassatMotor Diesel20035712False106000
CrossfoxMotor Diesel V8199137123False72000
DS5Motor Diesel20190True89000
FuscaMotor 1.61990120000False32000

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!