Comment parcourir les lignes d'un DataFrame dans Pandas

Suraj Joshi 30 janvier 2023
  1. Attribut index pour parcourir les lignes dans Pandas DataFrame
  2. Méthode loc[] pour parcourir les lignes de DataFrame en Python
  3. Méthode iloc[] pour parcourir les lignes de DataFrame en Python
  4. pandas.DataFrame.iterrows() pour parcourir les lignes pandas
  5. pandas.DataFrame.itertuples pour parcourir les lignes pandas
  6. pandas.DataFrame.apply pour parcourir les lignes pandas
Comment parcourir les lignes d'un DataFrame dans 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.

Auteur: Suraj Joshi
Suraj Joshi avatar Suraj Joshi avatar

Suraj Joshi is a backend software engineer at Matrice.ai.

LinkedIn

Article connexe - Pandas DataFrame

Article connexe - Pandas DataFrame Row