Heim >Backend-Entwicklung >Python-Tutorial >Wie wählt man effizient Daten aus einem Pandas-DataFrame mit mehreren komplexen Kriterien aus?
Bei Datenmanipulationsaufgaben treten häufig komplexe Auswahlkriterien mit mehreren Bedingungen auf. Pandas bietet Methoden und Redewendungen, um diese Szenarien effizient zu bewältigen.
Beispiel:
Betrachten Sie den folgenden DataFrame:
import pandas as pd from random import randint df = pd.DataFrame({'A': [randint(1, 9) for x in range(10)], 'B': [randint(1, 9)*10 for x in range(10)], 'C': [randint(1, 9)*100 for x in range(10)]})
Problem:
Wählen Sie Werte aus „A“ aus, bei denen die entsprechenden Werte für „B“ größer sind als 50 und „C“ entspricht nicht 900.
Lösung:
Wir können Spaltenoperationen anwenden, um boolesche Serienobjekte für jede Bedingung zu erhalten:
df["B"] > 50 (df["B"] > 50) & (df["C"] != 900)
oder äquivalent:
(df["B"] > 50) & ~(df["C"] == 900)
Diese booleschen Reihen können dann zur Indizierung in verwendet werden DataFrame:
df["A"][(df["B"] > 50) & (df["C"] != 900)]
oder mit .loc:
df.loc[(df["B"] > 50) & (df["C"] != 900), "A"]
Hinweis:
Für den Schreibzugriff wird die Verwendung empfohlen. loc anstelle der Verkettung von Indizes, da letzteres zu einer Ansicht anstelle einer Kopie führen kann, was zu potenziellen Problemen führen kann.
Das obige ist der detaillierte Inhalt vonWie wählt man effizient Daten aus einem Pandas-DataFrame mit mehreren komplexen Kriterien aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!