Olá, Otelmo! Tudo bom?
A função iterrows()
possibilita iterar sobre cada linha (row) do seu pd.DataFrame
, isto é, nós vamos analisar cada linha separadamente.
Quando precisamos utilizar algum laço de repetição for
sobre o DataFrame, nós utilizamos o iterrows()
para possibilitar essa ação.
E ao utilizar essa função, é retornado uma tupla com duas informações, a primeira é o índice da linha, e a segunda é o conteúdo da linha, no formato de uma Series do Pandas. Vamos observar o seguinte exemplo:
import pandas as pd
dados = {'A': [1, 2, 3],
'B': [4, 5, 6],
'C': [7, 8, 9]}
df = pd.DataFrame(dados)
df
Saída:
Se nós fizemos um print()
utilizando o iterrows()
,
for i in df.iterrows():
print(i)
Nós teremos como saída três tuplas, contendo os índices e também os conteúdos de cada linha.
(0, A 1
B 4
C 7
Name: 0, dtype: int64)
(1, A 2
B 5
C 8
Name: 1, dtype: int64)
(2, A 3
B 6
C 9
Name: 2, dtype: int64)
A formação fica um pouco confusa na saída, mas observe a existência de um par de parênteses separados por vírgulas, isso são tuplas no Python. E podemos confirmar com a função type()
:
for i in df.iterrows():
print(type(i))
<class 'tuple'>
<class 'tuple'>
<class 'tuple'>
Nós podemos adicionar esses elementos a uma lista e também acessar de maneira separada.
lista = []
for i in df.iterrows():
lista.append(i)
E se tentamos acessar um elemento qualquer, por exemplo o segundo elemento, temos uma tupla com índice da linha e o conteúdo dela:
lista[1]
(1,
A 2
B 5
C 8
Name: 1, dtype: int64)
E para acessar somente o conteúdo, também conseguimos acessar o item da tupla com lista[1][1]
.
A 2
B 5
C 8
Name: 1, dtype: int64
O código que você mencionou muito provavelmente utiliza o iterrows()
separando o índice e o conteúdo em duas variáveis distintas, o id
e o matriculas
dentro do laço de repetição. Após isso, é dito que seja feito um laço de repetição que irá repetir pela mesma quantidade da variável matriculas
, que possivelmente é um valor numérico, mas não temos como afirmar pois não temos mais informações de como você as construiu.
Dentro desse laço de repetição, é feito uma construção de uma lista onde o primeiro elemento é o próprio id analisado, e o restante é uma escolha aleatória sobre os índices dos cursos, levando em consideração uma probabilidade de escolha p = prob
. Ao final disso, essa operação é adicionada dentro de uma lista chamada todas_matriculas
.
Se ainda tiver alguma dúvida, estou por aqui. Ótimos estudos e grande abraço!
Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!