Heim >Backend-Entwicklung >Python-Tutorial >Wie wählt man effizient Daten aus einem Pandas-DataFrame mit mehreren komplexen Kriterien aus?

Wie wählt man effizient Daten aus einem Pandas-DataFrame mit mehreren komplexen Kriterien aus?

DDD
DDDOriginal
2024-12-02 20:45:14618Durchsuche

How to Efficiently Select Data from a Pandas DataFrame with Multiple Complex Criteria?

Auswahl mit komplexen Kriterien aus Pandas.DataFrame

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn