Wie man durch Zeilen eines DataFrame in Pandas iteriert

Suraj Joshi 30 Januar 2023
  1. index Attribut zur Iteration durch Zeilen in Pandas DataFrame
  2. loc[] Methode zur Iteration über Zeilen eines DataFrame in Python
  3. iloc[] Methode zur Iteration durch Zeilen des DataFrame in Python
  4. pandas.DataFrame.iterrows() zur Iteration über Zeilen Pandas
  5. pandas.DataFrame.itertuples, um über Pandas-Zeilen zu iterieren
  6. pandas.DataFrame.apply zur Iteration über Pandas-Zeilen
Wie man durch Zeilen eines DataFrame in Pandas iteriert

Wir können durch Zeilen eines Pandas DataFrame schleifen, indem wir das index-Attribut des DataFrame verwenden. Wir können auch durch Zeilen von DataFrame-Pandas iterieren, indem wir die Methoden loc(), iloc(), iterrows(), itertuples(), iteritems() und apply() von DataFrame-Objekten verwenden.

In den folgenden Abschnitten werden wir den untenstehenden DataFrame als Beispiel verwenden.

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)

Ausgabe:

       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

index Attribut zur Iteration durch Zeilen in Pandas DataFrame

Pandas DataFrame index-Attribut gibt ein Range-Objekt von der oberen Zeile bis zur unteren Zeile eines DataFrames an. Wir können den Bereich verwenden, um über Zeilen in Pandas zu iterieren.

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])
    )

Ausgabe:

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

Es addiert Income_1 und Income_2 jeder Zeile und gibt das Gesamteinkommen aus.

loc[] Methode zur Iteration über Zeilen eines DataFrame in Python

Die loc[] Methode wird verwendet, um jeweils auf eine Zeile zuzugreifen. Wenn wir die loc[] Methode innerhalb der Schleife durch DataFrame verwenden, können wir durch Zeilen von DataFrame iterieren.

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"])
    )

Ausgabe:

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

Hier erzeugt range(len(df)) ein Range-Objekt, das in einer Schleife über ganze Zeilen des DataFrame läuft.

iloc[] Methode zur Iteration durch Zeilen des DataFrame in Python

Pandas DataFrame iloc-Attribut ist auch dem loc-Attribut sehr ähnlich. Der einzige Unterschied zwischen loc und iloc ist, daß wir in loc den Namen der Zeile oder Spalte angeben müssen, auf die zugegriffen werden soll, während wir in iloc den Index der Zeile oder Spalte angeben, auf die zugegriffen werden soll.

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])
    )

Ausgabe:

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

Hier repräsentiert der Index 0 die erste Spalte des DataFrame, d.h. Date, der Index 1 die Spalte Income_1 und der Index 2 die Spalte Income_2.

pandas.DataFrame.iterrows() zur Iteration über Zeilen Pandas

pandas.DataFrame.iterrows() gibt den Index der Zeile und die gesamten Daten der Zeile als Series zurück. Daher könnten wir diese Funktion verwenden, um über Zeilen in Pandas DataFrame zu iterieren.

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"])
    )

Ausgabe:

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, um über Pandas-Zeilen zu iterieren

pandas.DataFrame.itertuples gibt ein Objekt zurück, das über Tupel für jede Zeile mit dem ersten Feld als Index und den restlichen Feldern als Spaltenwerte iteriert werden soll. Daher könnten wir diese Funktion auch verwenden, um über Zeilen in Pandas DataFrame zu iterieren.

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))

Ausgabe:

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 zur Iteration über Pandas-Zeilen

pandas.DataFrame.apply gibt einen DataFrame zurück
als Ergebnis der Anwendung der gegebenen Funktion entlang der gegebenen Achse des DataFrame.

Die Syntax:

DataFrame.apply(self, func, axis=0, raw=False, result_type=None, args=(), **kwds)

Dabei steht func für die anzuwendende Funktion und axis für die Achse, entlang der die Funktion angewendet wird. Wir können axis=1 oder axis = 'columns' verwenden, um die Funktion auf jede Zeile anzuwenden.

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,
    )
)

Ausgabe:

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

Hier wird das Schlüsselwort lambda verwendet, um eine Inline-Funktion zu definieren, die auf jede Zeile angewendet wird.

Suraj Joshi avatar Suraj Joshi avatar

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

LinkedIn

Verwandter Artikel - Pandas DataFrame

Verwandter Artikel - Pandas DataFrame Row