Heim > Backend-Entwicklung > Python-Tutorial > Wie kann ich Zeilen in einem Pandas-DataFrame basierend auf Spaltenwerten effizient auswählen?

Wie kann ich Zeilen in einem Pandas-DataFrame basierend auf Spaltenwerten effizient auswählen?

Patricia Arquette
Freigeben: 2024-12-25 16:02:15
Original
735 Leute haben es durchsucht

How Can I Efficiently Select Rows in a Pandas DataFrame Based on Column Values?

Auswählen von Zeilen basierend auf Spaltenwerten in Pandas

Wie bei jeder relationalen Datenbank müssen Sie möglicherweise bestimmte Zeilen aus einem DataFrame basierend auf den Werten in einer bestimmten Spalte auswählen. Um dies in Pandas nahtlos zu erreichen, stehen Ihnen mehrere Methoden zur Verfügung.

Filtern mit == und isin

Um Zeilen abzurufen, deren Spaltenwerte mit einem bestimmten Wert übereinstimmen, nutzen Sie den ==-Operator:

df.loc[df['column_name'] == some_value]
Nach dem Login kopieren

Wenn Sie umgekehrt Zeilen auswählen möchten, deren Spaltenwerte zu einer Sammlung von Werten gehören, verwenden Sie isin:

df.loc[df['column_name'].isin(some_values)]
Nach dem Login kopieren

Bedingungen mit & kombinieren

Um mehrere Bedingungen in Ihrer Auswahl zu kombinieren, verbinden Sie sie mit &:

df.loc[(df['column_name'] >= A) & (df['column_name'] <= B)]
Nach dem Login kopieren

Hinweis: Klammern sind hier entscheidend, um eine ordnungsgemäße Auswertung sicherzustellen.

Ausschließen von Werten mit != und ~

Um Zeilen mit bestimmten Spaltenwerten auszuschließen, verwenden Sie !=:

df.loc[df['column_name'] != some_value]
Nach dem Login kopieren

Alternativ können Sie für Werte außerhalb eines bestimmten Bereichs das isin-Ergebnis mit ~:

df = df.loc[~df['column_name'].isin(some_values)] # .loc is not in-place replacement
Nach dem Login kopieren
negieren

Beispielanwendungen

Bedenken Sie Folgendes DataFrame:

import pandas as pd
import numpy as np
df = pd.DataFrame({'A': 'foo bar foo bar foo bar foo foo'.split(),
                   'B': 'one one two three two two one three'.split(),
                   'C': np.arange(8), 'D': np.arange(8) * 2})
print(df)
Nach dem Login kopieren

Zeilen mit „A“-Wert „foo“ auswählen:

print(df.loc[df['A'] == 'foo'])
Nach dem Login kopieren

Zeilen mit „B“-Werten „eins“ oder „drei“ auswählen:

print(df.loc[df['B'].isin(['one','three'])])
Nach dem Login kopieren

Verbesserte Leistung durch Indizierung

Für häufige Filtervorgänge ist es effizienter, einen Index zu erstellen zuerst:

df = df.set_index(['B'])
print(df.loc['one'])
Nach dem Login kopieren

Alternativ verwenden Sie df.index.isin:

df.loc[df.index.isin(['one','two'])]
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie kann ich Zeilen in einem Pandas-DataFrame basierend auf Spaltenwerten effizient auswählen?. 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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage