Como Iterar Através de Linhas de um DataFrame em Pandas
-
Atributo
index
para iterar por meio de linhas no Pandas DataFrame -
loc[]
Método para Iterar através de linhas de DataFrame em Python -
iloc[]
método para Iterar através de linhas do DataFrame em Python -
pandas.DataFrame.iterrows()
para iterar em pandas de linhas -
pandas.DataFrame.itertuples
para Iterar sobre Linhas Pandas -
pandas.DataFrame.apply
para iterar sobre linhas de pandas
Podemos fazer loop através das linhas de um Pandas DataFrame utilizando o atributo index
do DataFrame. Também podemos iterar através das linhas de um DataFrame Pandas utilizando loc()
, iloc()
, iterrows()
, itertuples()
, iteritems()
e apply()
métodos de objetos DataFrame.
Utilizaremos o quadro de dados abaixo como um exemplo nas seções seguintes.
import pandas as pd
dates = ["April-10", "April-11", "April-12", "April-13", "April-14", "April-16"]
income1 = [10, 20, 10, 15, 10, 12]
income2 = [20, 30, 10, 5, 40, 13]
df = pd.DataFrame({"Date": dates, "Income_1": income1, "Income_2": income2})
print(df)
Resultado:
Date Income_1 Income_2
0 April-10 10 20
1 April-11 20 30
2 April-12 10 10
3 April-13 15 5
4 April-14 10 40
5 April-16 12 13
Atributo index
para iterar por meio de linhas no Pandas DataFrame
O atributo Pandas DataFrame index
dá um objeto de intervalo desde a linha superior até a linha inferior de um DataFrame. Podemos utilizar o intervalo para iterar sobre as linhas em Pandas.
import pandas as pd
dates = ["April-10", "April-11", "April-12", "April-13", "April-14", "April-16"]
income1 = [10, 20, 10, 15, 10, 12]
income2 = [20, 30, 10, 5, 40, 13]
df = pd.DataFrame({"Date": dates, "Income_1": income1, "Income_2": income2})
for i in df.index:
print(
"Total income in "
+ df["Date"][i]
+ " is:"
+ str(df["Income_1"][i] + df["Income_2"][i])
)
Resultado:
Total income in April-10 is:30
Total income in April-11 is:50
Total income in April-12 is:20
Total income in April-13 is:20
Total income in April-14 is:50
Total income in April-16 is:25
Ele adiciona Income_1
e Income_2
de cada linha e imprime a renda total.
loc[]
Método para Iterar através de linhas de DataFrame em Python
O método loc[]
é utilizado para acessar uma fila de cada vez. Quando utilizamos o método loc[]
dentro do laço através do DataFrame, podemos iterar através das linhas do DataFrame.
import pandas as pd
dates = ["April-10", "April-11", "April-12", "April-13", "April-14", "April-16"]
income1 = [10, 20, 10, 15, 10, 12]
income2 = [20, 30, 10, 5, 40, 13]
df = pd.DataFrame({"Date": dates, "Income_1": income1, "Income_2": income2})
for i in range(len(df)):
print(
"Total income in "
+ df.loc[i, "Date"]
+ " is:"
+ str(df.loc[i, "Income_1"] + df.loc[i, "Income_2"])
)
Resultado:
Total income in April-10 is:30
Total income in April-11 is:50
Total income in April-12 is:20
Total income in April-13 is:20
Total income in April-14 is:50
Total income in April-16 is:25
Aqui, range(len(df))
gera um objeto de intervalo para fazer loop sobre linhas inteiras no DataFrame.
iloc[]
método para Iterar através de linhas do DataFrame em Python
O atributo Pandas DataFrame iloc
também é muito semelhante ao atributo loc
. A única diferença entre loc
e iloc
é que em loc
temos que especificar o nome da linha ou coluna a ser acessada enquanto em iloc
especificamos o índice da linha ou coluna a ser acessada.
import pandas as pd
dates = ["April-10", "April-11", "April-12", "April-13", "April-14", "April-16"]
income1 = [10, 20, 10, 15, 10, 12]
income2 = [20, 30, 10, 5, 40, 13]
df = pd.DataFrame({"Date": dates, "Income_1": income1, "Income_2": income2})
for i in range(len(df)):
print(
"Total income in " + df.iloc[i, 0] + " is:" + str(df.iloc[i, 1] + df.iloc[i, 2])
)
Resultado:
Total income in April-10 is:30
Total income in April-11 is:50
Total income in April-12 is:20
Total income in April-13 is:20
Total income in April-14 is:50
Total income in April-16 is:25
Aqui o índice 0
representa a primeira coluna do DataFrame, ou seja, Date
, o índice 1
representa a coluna Income_1
e o índice 2
representa a coluna Income_2
.
pandas.DataFrame.iterrows()
para iterar em pandas de linhas
pandas.DataFrame.iterrows()
retorna o índice da linha e os dados completos da linha como uma Series
. Portanto, poderíamos utilizar esta função para iterar sobre as linhas em Pandas DataFrame.
import pandas as pd
dates = ["April-10", "April-11", "April-12", "April-13", "April-14", "April-16"]
income1 = [10, 20, 10, 15, 10, 12]
income2 = [20, 30, 10, 5, 40, 13]
df = pd.DataFrame({"Date": dates, "Income_1": income1, "Income_2": income2})
for index, row in df.iterrows():
print(
"Total income in "
+ row["Date"]
+ " is:"
+ str(row["Income_1"] + row["Income_2"])
)
Resultado:
Total income in April-10 is:30
Total income in April-11 is:50
Total income in April-12 is:20
Total income in April-13 is:20
Total income in April-14 is:50
Total income in April-16 is:25
pandas.DataFrame.itertuples
para Iterar sobre Linhas Pandas
pandas.DataFrame.itertuples
retorna um objeto para iterar sobre tuplos para cada linha com o primeiro campo como um índice e os campos restantes como valores de coluna. Portanto, também poderíamos utilizar esta função para iterar sobre linhas em Pandas DataFrame.
import pandas as pd
dates = ["April-10", "April-11", "April-12", "April-13", "April-14", "April-16"]
income1 = [10, 20, 10, 15, 10, 12]
income2 = [20, 30, 10, 5, 40, 13]
df = pd.DataFrame({"Date": dates, "Income_1": income1, "Income_2": income2})
for row in df.itertuples():
print("Total income in " + row.Date + " is:" + str(row.Income_1 + row.Income_2))
Resultado:
Total income in April-10 is:30
Total income in April-11 is:50
Total income in April-12 is:20
Total income in April-13 is:20
Total income in April-14 is:50
Total income in April-16 is:25
pandas.DataFrame.apply
para iterar sobre linhas de pandas
pandas.DataFrame.apply
retorna um DataFrame
como resultado da aplicação da função dada ao longo do eixo dado do DataFrame.
Sintaxe:
DataFrame.apply(self, func, axis=0, raw=False, result_type=None, args=(), **kwds)
Onde, func
representa a função a ser aplicada e axis
representa o eixo ao longo do qual a função é aplicada. Podemos utilizar axis=1
ou axis = 'columns'
para aplicar a função a cada linha.
import pandas as pd
dates = ["April-10", "April-11", "April-12", "April-13", "April-14", "April-16"]
income1 = [10, 20, 10, 15, 10, 12]
income2 = [20, 30, 10, 5, 40, 13]
df = pd.DataFrame({"Date": dates, "Income_1": income1, "Income_2": income2})
print(
df.apply(
lambda row: "Total income in "
+ row["Date"]
+ " is:"
+ str(row["Income_1"] + row["Income_2"]),
axis=1,
)
)
Resultado:
0 Total income in April-10 is:30
1 Total income in April-11 is:50
2 Total income in April-12 is:20
3 Total income in April-13 is:20
4 Total income in April-14 is:50
5 Total income in April-16 is:25
dtype: object
Aqui, a palavra-chave lambda
é utilizada para definir uma função em linha que é aplicada a cada linha.
Suraj Joshi is a backend software engineer at Matrice.ai.
LinkedInArtigo relacionado - Pandas DataFrame
- Como obter os cabeçalhos da coluna Pandas DataFrame como uma lista
- Como eliminar a coluna Pandas DataFrame
- Como Converter a Coluna DataFrame para DataTempo em Pandas
- Como Converter um Flutuador em um Inteiro em Pandas DataFrame
- Como Classificar Pandas DataFrame pelos Valores de uma Coluna
- Como Obter o Agregado de Pandas Group-By e Sum
Artigo relacionado - Pandas DataFrame Row
- Como obter a contagem de filas de um Pandas DataFrame
- Como embaralhar aleatoriamente linhas DataFrame em Pandas
- Como filtrar linhas de dados com base nos valores das colunas em Pandas
- Como obter índice de todas as linhas cuja coluna específica satisfaz dada a condição em Pandas
- Obter a Primeira Fila de Pandas de Dataframe