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
Freigeben: 2024-12-02 20:45:14
Original
622 Leute haben es durchsucht

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)]})
Nach dem Login kopieren

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)
Nach dem Login kopieren

oder äquivalent:

(df["B"] > 50) & ~(df["C"] == 900)
Nach dem Login kopieren

Diese booleschen Reihen können dann zur Indizierung in verwendet werden DataFrame:

df["A"][(df["B"] > 50) & (df["C"] != 900)]
Nach dem Login kopieren

oder mit .loc:

df.loc[(df["B"] > 50) & (df["C"] != 900), "A"]
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage