Wie man durch Zeilen eines DataFrame in Pandas iteriert
-
index
Attribut zur Iteration durch Zeilen in Pandas DataFrame -
loc[]
Methode zur Iteration über Zeilen eines DataFrame in Python -
iloc[]
Methode zur Iteration durch Zeilen des DataFrame in Python -
pandas.DataFrame.iterrows()
zur Iteration über Zeilen Pandas -
pandas.DataFrame.itertuples
, um über Pandas-Zeilen zu iterieren -
pandas.DataFrame.apply
zur Iteration über Pandas-Zeilen
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 is a backend software engineer at Matrice.ai.
LinkedInVerwandter Artikel - Pandas DataFrame
- Wie man Pandas DataFrame-Spaltenüberschriften als Liste erhält
- Pandas DataFrame-Spalte löschen
- Wie man DataFrame-Spalte in Datetime in Pandas konvertiert
- Wie konvertiert man eine Fließkommazahl in eine Ganzzahl in Pandas DataFrame
- Wie man Pandas-DataFrame nach den Werten einer Spalte sortiert
- Wie erhält man das Aggregat der Pandas gruppenweise und sum
Verwandter Artikel - Pandas DataFrame Row
- So erhalten Sie die Zeilenanzahl eines Pandas DataFrame
- Zufälliges Mischen von DataFrame-Zeilen in Pandas
- Wie man DataFrame-Zeilen auf der Grundlage von Spaltenwerten in Pandas filtert
- Wie erhält man einen Index aller Reihen, deren bestimmte Spalte den gegebenen Zustand in Pandas befriedigt
- Finden Sie doppelte Zeilen in einem DataFrame mit Pandas