Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Dúvida no laço for

O instrutor fez o laço for da seguinte maneira:

for index, row in nomes.iterrows():

Se eu fizer um print(index) a saída será um print de todas os índices do DataFrame, e se eu fizer um print(row) a saída será um print com detalhes de cada linha da seguinte forma:

nome                            MARIA
ID_alunos                         133
Dominio           @servicodoemail.com
Email        maria@servicodoemail.com
Matricula                           1
Name: 0, dtype: object

Agora, caso eu faça o seguinte código:

for row in nomes.iterrows():
  print(row)

A saída vai mesclar o índice com as informações da linha.

(0, nome                            MARIA
ID_alunos                         133
Dominio           @servicodoemail.com
Email        maria@servicodoemail.com
Matricula                           1
Name: 0, dtype: object)

Ou seja, ao fazer um laço for, se eu passar somente um nome antes do (in), em casos de DataFrame, ele vai acessar tanto o índice quanto a linha juntos? E caso eu passe dois nomes o primeiro vai acessar os índices e o segundo vai acessar as informações da linha separadamente?

2 respostas
solução!

Olá Janderson,

É isso mesmo. Se você passar apenas um parâmetro antes do in ele vai te retornar uma tupla com duas posições, e portanto, você vai ver as tuplas com os índices e as linhas do dataFrame

Agora, se você passar dois parâmetros antes do in, o for vai atribuir o índice ao primeiro parâmetro e a linha ao segundo.

Isso ocorre porque o nomes.iterrows() é um objeto iterável que armazena os índices e linhas do DataFrame em tuplas, da seguinte forma:

(indice, row)

Abs

Obrigado pela atenção.

Abs!!!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software