Comment parcourir les lignes d'un DataFrame dans Pandas
-
Attribut
indexpour parcourir les lignes dans Pandas DataFrame -
Méthode
loc[]pour parcourir les lignes de DataFrame en Python -
Méthode
iloc[]pour parcourir les lignes de DataFrame en Python -
pandas.DataFrame.iterrows()pour parcourir les lignes pandas -
pandas.DataFrame.itertuplespour parcourir les lignes pandas -
pandas.DataFrame.applypour parcourir les lignes pandas
Nous pouvons parcourir les lignes d’un Pandas DataFrame en utilisant l’attribut index du DataFrame. Nous pouvons également parcourir les lignes de DataFrame Pandas en utilisant les méthodes loc(), iloc(), iterrows(), itertuples(), iteritems() et apply() des objets DataFrame.
Nous utiliserons le DataFrame ci-dessous comme exemple dans les sections suivantes.
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)
Production:
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
Attribut index pour parcourir les lignes dans Pandas DataFrame
L’attribut Pandas DataFrame index donne un objet range de la ligne supérieure à la ligne inférieure d’un DataFrame. Nous pouvons utiliser la plage pour parcourir les lignes dans 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])
)
Production:
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
Il ajoute Income_1 et Income_2 de chaque ligne et imprime le revenu total.
Méthode loc[] pour parcourir les lignes de DataFrame en Python
La méthode loc[] est utilisée pour accéder à une ligne à la fois. Lorsque nous utilisons la méthode loc[] dans la boucle via DataFrame, nous pouvons parcourir les lignes 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"])
)
Production:
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
Ici, range(len(df)) génère un objet range à boucler sur des lignes entières dans le DataFrame.
Méthode iloc[] pour parcourir les lignes de DataFrame en Python
L’attribut Pandas DataFrame iloc est également très similaire à l’attribut loc. La seule différence entre loc et iloc est que dans loc nous devons spécifier le nom de la ligne ou de la colonne à laquelle accéder tandis que dans iloc nous spécifions l’index de la ligne ou de la colonne à accéder.
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])
)
Production:
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
Ici, l’index 0 représente la 1ère colonne de DataFrame, c’est-à-dire Date, l’index 1 représente la colonne Income_1 et l’index 2 représente la colonne Income_2.
pandas.DataFrame.iterrows() pour parcourir les lignes pandas
pandas.DataFrame.iterrows() retourne l’index de la ligne et toutes les données de la ligne sous forme de Series. Par conséquent, nous pourrions utiliser cette fonction pour parcourir les lignes dans 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"])
)
Production:
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 pour parcourir les lignes pandas
pandas.DataFrame.itertuples retourne un objet pour itérer sur des tuples pour chaque ligne avec le premier champ comme index et champs restants comme valeurs de colonne. Par conséquent, nous pourrions également utiliser cette fonction pour parcourir les lignes dans 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))
Production:
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 pour parcourir les lignes pandas
pandas.DataFrame.apply retourne un DataFrame
à la suite de l’application de la fonction donnée le long de l’axe donné du DataFrame.
Syntaxe:
DataFrame.apply(self, func, axis=0, raw=False, result_type=None, args=(), **kwds)
Où, func représente la fonction à appliquer et axis représente l’axe le long duquel la fonction est appliquée. Nous pouvons utiliser axis=1 ou axis = 'columns' pour appliquer une fonction à chaque ligne.
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,
)
)
Production:
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
Ici, le mot clé lambda est utilisé pour définir une fonction en ligne qui est appliquée à chaque ligne.
Suraj Joshi is a backend software engineer at Matrice.ai.
LinkedInArticle connexe - Pandas DataFrame
- Comment obtenir les en-têtes de colonne de Pandas DataFrame sous forme de liste
- Comment supprimer une colonne de Pandas DataFrame
- Comment convertir la colonne DataFrame en date-heure dans Pandas
- Comment convertir un float en un entier dans Pandas DataFrame
- Comment trier le DataFrame de Pandas par les valeurs d'une colonne
- Comment obtenir l'agrégat des Pandas par groupe et par somme
Article connexe - Pandas DataFrame Row
- Comment obtenir le nombre de lignes d'un Pandas DataFrame
- Comment mélanger au hasard les lignes DataFrame dans Pandas
- Filtrer les lignes des cadres de données en fonction des valeurs des colonnes dans Pandas
- Comment obtenir l'index de toutes les lignes dont la colonne particulière satisfait la condition donnée dans Pandas
- Les Pandas déposent des lignes en double
