Cómo iterar a través de filas de un DataFrame en Pandas
-
Atributo
indexpara 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.itertuplespara iterar sobre las filas pandas -
pandas.DataFrame.applypara 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
