Wie erhält man einen Index aller Reihen, deren bestimmte Spalte den gegebenen Zustand in Pandas befriedigt

Suraj Joshi 30 Januar 2023
  1. Einfache Indexierungsoperation, um den Index aller Zeilen zu erhalten, deren bestimmte Spalte die gegebene Bedingung erfüllt
  2. np.where() Methode, um den Index aller Zeilen zu erhalten, deren bestimmte Spalte die gegebene Bedingung erfüllt
  3. pandas.DataFrame.query(), um Indizes aller Zeilen zu erhalten, deren bestimmte Spalte die gegebene Bedingung erfüllt
Wie erhält man einen Index aller Reihen, deren bestimmte Spalte den gegebenen Zustand in Pandas befriedigt

Wir können den Index aller Zeilen erhalten, deren bestimmte Spalte die gegebene Bedingung in Pandas erfüllt, indem wir eine einfache Indizierungsoperation verwenden. Wir könnten ihre Indizes auch mit der Methode where() aus dem Paket NumPy und der Methode query() des DataFrame-Objekts finden.

Einfache Indexierungsoperation, um den Index aller Zeilen zu erhalten, deren bestimmte Spalte die gegebene Bedingung erfüllt

Die Verwendung einer einfachen Indexierungsoperation kann die Aufgabe erfüllen, den Index von Zeilen zu erhalten, deren bestimmte Spalte die gegebene Bedingung erfüllt.

import pandas as pd
import numpy as np

dates = ["April-10", "April-11", "April-12", "April-13", "April-14", "April-16"]
sales = [200, 300, 400, 200, 300, 300]
prices = [3, 1, 2, 4, 3, 2]

df = pd.DataFrame({"Date": dates, "Sales": sales, "Price": prices})

reqd_Index = df[df["Sales"] >= 300].index.tolist()
print(reqd_Index)

Ausgabe:

[1, 2, 4, 5]

Hier gibt df['Sales']>=300 eine Reihe boolescher Werte an, deren Elemente True sind, wenn ihre Spalte Sales einen Wert größer oder gleich 300 hat.

Den Index von Zeilen, deren Sales-Wert größer oder gleich 300 ist, können wir mit df[df['Sales']>=300].index abrufen.

Schließlich wandelt die tolist() Methode alle Indizes in eine Liste um.

np.where() Methode, um den Index aller Zeilen zu erhalten, deren bestimmte Spalte die gegebene Bedingung erfüllt

np.where() nimmt Bedingung als Eingabe und gibt die Indizes der Elemente zurück, die die gegebene Bedingung erfüllen. Daher könnten wir np.where() verwenden, um die Indizes aller Zeilen zu erhalten, deren bestimmte Spalte die gegebene Bedingung erfüllt.

import pandas as pd
import numpy as np

dates = ["April-10", "April-11", "April-12", "April-13", "April-14", "April-16"]
sales = [200, 300, 400, 200, 300, 300]
prices = [3, 1, 2, 4, 3, 2]

df = pd.DataFrame({"Date": dates, "Sales": sales, "Price": prices})

reqd_Index = list(np.where(df["Sales"] >= 300))
print(reqd_Index)

Ausgabe:

[array([1, 2, 4, 5])]

Dies gibt die Indizes aller Zeilen aus, deren Werte in der Spalte Sales größer oder gleich 300 sind.

pandas.DataFrame.query(), um Indizes aller Zeilen zu erhalten, deren bestimmte Spalte die gegebene Bedingung erfüllt

pandas.DataFrame.query() gibt DataFrame zurück, das sich aus dem bereitgestellten Abfrageausdruck ergibt. Jetzt können wir das index-Attribut von DataFrame verwenden, um Indizes aller Zeilen zurückzugeben, deren bestimmte Spalte die gegebene Bedingung erfüllt.

import pandas as pd
import numpy as np

dates = ["April-10", "April-11", "April-12", "April-13", "April-14", "April-16"]
sales = [200, 300, 400, 200, 300, 300]
prices = [3, 1, 2, 4, 3, 2]

df = pd.DataFrame({"Date": dates, "Sales": sales, "Price": prices})

reqd_index = df.query("Sales == 300").index.tolist()
print(reqd_index)

Ausgabe:

[1, 4, 5]

Es gibt die Liste der Indizes aller Zeilen zurück, deren bestimmte Spalte die gegebene Bedingung Sales == 300 erfüllt.

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

Verwandter Artikel - Pandas DataFrame Column