Cómo iterar a través de filas de un DataFrame en Pandas
-
Atributo
index
para iterar a través de filas en Pandas DataFrame -
Método
loc[]
para iterar a través de filas de DataFrame en Python -
Método
iloc[]
para iterar a través de filas de DataFrame en Python -
pandas.DataFrame.iterrows()
para iterar sobre las filas pandas -
pandas.DataFrame.itertuples
para iterar sobre las filas pandas -
pandas.DataFrame.apply
para iterar sobre las filas pandas
Podemos recorrer las filas de un Pandas DataFrame usando el atributo index
del DataFrame. También podemos iterar a través de filas de DataFrame Pandas usando los métodos loc()
, iloc()
, iterrows()
, itertuples()
, iteritems()
y apply()
de los objetos DataFrame.
Utilizaremos el siguiente DataFrame como ejemplo en las siguientes secciones.
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)
Producción :
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 a través de filas en Pandas DataFrame
El atributo Pandas DataFrame index
proporciona un objeto de rango desde la fila superior a la fila inferior de un DataFrame. Podemos usar el rango para iterar sobre filas en 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])
)
Producción :
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
Agrega Income_1
e Income_2
de cada fila e imprime el ingreso total.
Método loc[]
para iterar a través de filas de DataFrame en Python
El método loc[]
se usa para acceder a una fila a la vez. Cuando usamos el método loc[]
dentro del bucle a través de DataFrame, podemos iterar a través de filas de 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"])
)
Producción :
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
Aquí, range(len(df))
genera un objeto de rango para recorrer filas enteras en el DataFrame.
Método iloc[]
para iterar a través de filas de DataFrame en Python
El atributo Pandas DataFrame iloc
también es muy similar al atributo loc
. La única diferencia entre loc
e iloc
es que en loc
tenemos que especificar el nombre de la fila o columna a la que se debe acceder, mientras que en iloc
especificamos el índice de la fila o columna a la que se debe acceder.
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])
)
Producción :
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
Aquí el índice 0
representa la primera columna de DataFrame, es decir, Date
, el índice 1
representa la columna Income_1
y el índice 2
representa la columna Income_2
.
pandas.DataFrame.iterrows()
para iterar sobre las filas pandas
pandas.DataFrame.iterrows()
devuelve el índice de la fila y todos los datos de la fila como una Series
. Por lo tanto, podríamos usar esta función para iterar sobre filas en 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"])
)
Producción :
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 las filas pandas
pandas.DataFrame.itertuples
devuelve un objeto para iterar sobre tuplas para cada fila con el primer campo como índice y los campos restantes como valores de columna. Por lo tanto, también podríamos usar esta función para iterar sobre filas en 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))
Producción :
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 las filas pandas
pandas.DataFrame.apply
devuelve un DataFrame
como resultado de aplicar la función dada a lo largo del eje dado del DataFrame.
Sintaxis:
DataFrame.apply(self, func, axis=0, raw=False, result_type=None, args=(), **kwds)
Donde, func
representa la función que se aplicará y axis
representa el eje a lo largo del cual se aplica la función. Podemos usar axis=1
o axis = 'columns'
para aplicar la función a cada fila.
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,
)
)
Producción :
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
Aquí, la palabra clave lambda
se usa para definir una función en línea que se aplica a cada fila.
Suraj Joshi is a backend software engineer at Matrice.ai.
LinkedInArtículo relacionado - Pandas DataFrame
- Cómo obtener las cabeceras de columna de Pandas DataFrame como una lista
- Cómo borrar la columna de Pandas DataFrame
- Cómo convertir la columna del DataFrame a Datetime en Pandas
- Cómo convertir un float en un entero en Pandas DataFrame
- Cómo clasificar Pandas DataFrame por los valores de una columna
- Cómo obtener el agregado de Pandas grupo por y suma
Artículo relacionado - Pandas DataFrame Row
- Cómo obtener el recuento de filas de un Pandas DataFrame
- Cómo barajar aleatoriamente filas de DataFrame en Pandas
- Cómo filtrar filas de DataFrames en función de los valores de columna en Pandas
- Cómo obtener el índice de todas las filas cuya columna particular satisface la condición dada en Pandas
- Encuentre filas duplicadas en un marco de datos usando Pandas