Heim >Backend-Entwicklung >Python-Tutorial >Wie wähle ich DataFrame-Werte basierend auf mehreren Kriterien in Pandas aus?

Wie wähle ich DataFrame-Werte basierend auf mehreren Kriterien in Pandas aus?

Patricia Arquette
Patricia ArquetteOriginal
2024-12-05 13:09:10924Durchsuche

How to Select DataFrame Values Based on Multiple Criteria in Pandas?

Auswahl mit komplexen Kriterien aus pandas.DataFrame

Auswahl spezifischer Werte aus einem DataFrame basierend auf mehreren Kriterien

Nehmen wir an, wir haben einen einfachen DataFrame wie Folgendes:

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)]})

Unser Ziel ist es, Werte aus Spalte „A“ auszuwählen, die bestimmte Kriterien für entsprechende Werte in Spalten erfüllen 'B' und 'C'.

Ansatz mit Boolescher Indizierung

Um dies zu erreichen, können wir die Boolesche Indizierung verwenden. Zuerst erstellen wir Boolesche Reihenobjekte für jedes Kriterium:

df["B"] > 50
(df["B"] > 50) & (df["C"] != 900)

Diese Booleschen Reihen stellen die Zeilen dar, die die jeweiligen Kriterien erfüllen. Wir können diese Reihen dann als Indizes verwenden, um die gewünschten Werte auszuwählen:

df["A"][df["B"] > 50]
df["A"][(df["B"] > 50) & (df["C"] != 900)]

Ansatz mit .loc

Wir können auch das .loc-Attribut für eine effizientere Indizierung verwenden. Mit .loc können wir die abzurufenden Zeilen und Spalten mit einer einzigen Anweisung angeben:

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

Fazit

Beide Methoden wählen effektiv Werte aus dem DataFrame basierend auf komplexen Kriterien aus. Die Wahl zwischen der Verwendung von Boolescher Indizierung oder .loc hängt von den persönlichen Vorlieben und der Lesbarkeit des Codes ab.

Das obige ist der detaillierte Inhalt vonWie wähle ich DataFrame-Werte basierend auf mehreren Kriterien in Pandas 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