Wenden Sie die If-Else-Bedingung in einem Pandas DataFrame an

Fariba Laiq 15 Februar 2024
  1. Verwenden Sie DataFrame.loc[], um die if-else-Bedingung in einem Pandas DataFrame in Python anzuwenden
  2. Verwenden Sie DataFrame.apply(), um die if-else-Bedingung in einem Pandas DataFrame in Python anzuwenden
  3. Verwenden Sie NumPy.select(), um die if-else-Bedingung in einem Pandas DataFrame in Python anzuwenden
  4. Verwenden Sie lambda mit apply(), um die if-else-Bedingung in einem Pandas DataFrame in Python anzuwenden
Wenden Sie die If-Else-Bedingung in einem Pandas DataFrame an

Pandas ist eine Open-Source-Datenanalysebibliothek in Python. Es bietet viele integrierte Methoden, um Operationen mit numerischen Daten durchzuführen.

In einigen Fällen möchten wir die if-else-Bedingungen auf einen Pandas-Datenrahmen anwenden, um die Datensätze zu filtern oder Berechnungen gemäß einigen Bedingungen durchzuführen. Python bietet viele Möglichkeiten, if-else in einem Pandas-Datenrahmen zu verwenden.

Verwenden Sie DataFrame.loc[], um die if-else-Bedingung in einem Pandas DataFrame in Python anzuwenden

[loc[]] ist eine Eigenschaft des Pandas-Datenrahmens, der zum Auswählen oder Filtern einer Gruppe von Zeilen oder Spalten verwendet wird. Im folgenden Beispiel verwenden wir diese Eigenschaft, um die Datensätze zu filtern, die eine bestimmte Bedingung erfüllen.

Hier haben wir einen Pandas-Datenrahmen, der aus den Daten der Schüler besteht. Mit loc[] können wir jeweils nur eine einzige Bedingung anwenden.

Wir filtern die Schüler mit Noten größer oder gleich 60 in der ersten Bedingung heraus und ordnen ihr Ergebnis als Bestanden in der neuen Spalte Ergebnis zu. In ähnlicher Weise werden wir für die restlichen Ergebnisse des Schülers in einer anderen Bedingung Nicht bestanden festlegen.

Beispielcode:

# Python 3.x
import pandas as pd

df = pd.DataFrame(
    {"Name": ["Robert", "Sam", "Alia", "Jhon", "Smith"], "Marks": [60, 41, 79, 51, 88]}
)
display(df)
df.loc[df["Marks"] >= 60, "Result"] = "Pass"
df.loc[df["Marks"] < 60, "Result"] = "Fail"
display(df)

Ausgang:

Pandas, wenn sonst DataFrame.loc verwendet wird - Ausgabe

Verwenden Sie DataFrame.apply(), um die if-else-Bedingung in einem Pandas DataFrame in Python anzuwenden

Die apply()-Methode verwendet die Achse des Datenrahmens (Zeile oder Spalte), um eine Funktion anzuwenden. Wir können unsere definierte Funktion, die aus if-else-Bedingungen besteht, erstellen und auf den Pandas-Datenrahmen anwenden.

Hier haben wir eine Funktion assign_Result() definiert und auf die Spalte Marks angewendet. Die Funktion besteht aus if-else-Bedingungen, die das Ergebnis anhand der Marks zuweisen und dies für jede Spaltenzeile aufrufen.

Beispielcode:

# Python 3.x
import pandas as pd

df = pd.DataFrame(
    {"Name": ["Robert", "Sam", "Alia", "Jhon", "Smith"], "Marks": [60, 41, 79, 51, 88]}
)
display(df)


def assign_Result(marks):
    if marks >= 60:
        result = "Pass"
    else:
        result = "Fail"
    return result


df["Result"] = df["Marks"].apply(assign_Result)
display(df)

Ausgang:

Pandas, wenn sonst DataFrame.apply() verwenden - Ausgabe

Verwenden Sie NumPy.select(), um die if-else-Bedingung in einem Pandas DataFrame in Python anzuwenden

Wir können mehrere Bedingungen für eine Spalte in einer Liste und ihre entsprechenden Werte in einer anderen Liste definieren, wenn die Bedingung True ist. Die Methode select() nimmt die Liste der Bedingungen und ihre entsprechende Werteliste als Argumente und weist sie der Spalte Ergebnis zu.

Beispielcode:

# Python 3.x
import pandas as pd
import numpy as np

df = pd.DataFrame(
    {"Name": ["Robert", "Sam", "Alia", "Jhon", "Smith"], "Marks": [60, 41, 79, 51, 88]}
)
display(df)
conditions = [(df["Marks"] >= 60), (df["Marks"] < 60)]
result = ["Pass", "Fail"]
df["Result"] = np.select(conditions, result)
display(df)

Ausgang:

Pandas, wenn sonst NumPy.select() verwendet wird - Ausgabe

Verwenden Sie lambda mit apply(), um die if-else-Bedingung in einem Pandas DataFrame in Python anzuwenden

Ein lambda ist eine kleine anonyme Funktion, die aus einem einzigen Ausdruck besteht. Wir verwenden lambda mit apply() in der Spalte Marks.

Das x enthält die Markierungen im Ausdruck lambda. Wir haben die Bedingung if-else auf das x angewendet und das Ergebnis entsprechend in der Spalte Ergebnis zugeordnet.

Beispielcode:

# Python 3.x
import pandas as pd
import numpy as np

df = pd.DataFrame(
    {"Name": ["Robert", "Sam", "Alia", "Jhon", "Smith"], "Marks": [60, 41, 79, 51, 88]}
)
display(df)
df["Result"] = df["Marks"].apply(lambda x: "Pass" if x >= 60 else "Fail")
display(df)

Ausgang:

Pandas, wenn sonst Lambda mit apply() verwenden - Ausgabe

Fariba Laiq avatar Fariba Laiq avatar

I am Fariba Laiq from Pakistan. An android app developer, technical content writer, and coding instructor. Writing has always been one of my passions. I love to learn, implement and convey my knowledge to others.

LinkedIn

Verwandter Artikel - Pandas Condition