Heim >Backend-Entwicklung >Python-Tutorial >Wie wähle ich bestimmte Zeilen in einem Pandas-DataFrame basierend auf Spaltenwerten aus?

Wie wähle ich bestimmte Zeilen in einem Pandas-DataFrame basierend auf Spaltenwerten aus?

Patricia Arquette
Patricia ArquetteOriginal
2024-12-30 15:30:13295Durchsuche

How to Select Specific Rows in a Pandas DataFrame Based on Column Values?

Auswählen von Zeilen basierend auf Spaltenwerten in Pandas

In Pandas kann das Filtern eines DataFrames zur Auswahl bestimmter Zeilen basierend auf Spaltenwerten mithilfe einer Kombination aus Vergleichsoperatoren und erfolgen Boolesche Indizierung.

Vergleichen von Spaltenwerten

Zum Auswählen von Zeilen, in denen ein Spaltenwert mit einem bestimmten Wert übereinstimmt Skalarwert verwenden Sie den ==-Operator:

df.loc[df['column_name'] == some_value]

Um Zeilen auszuwählen, in denen sich ein Spaltenwert in einer Liste oder einem anderen iterierbaren Wert befindet, verwenden Sie den isin-Operator:

df.loc[df['column_name'].isin(some_values)]

Kombinationsbedingungen

Mehrere Bedingungen können mit dem &-Operator kombiniert werden, um Zeilen auszuwählen, die alle erfüllen Bedingungen:

df.loc[(df['column_name'] >= A) & (df['column_name'] <= B)]

Beachten Sie, dass Klammern erforderlich sind, um die richtige Operatorpriorität sicherzustellen.

Negierende Bedingungen

Zum Auswählen von Zeilen, die nicht mit einem bestimmten Wert übereinstimmen oder nicht vorhanden sind Um eine bestimmte Liste anzuzeigen, negieren Sie die Bedingung mit != oder ~:

df.loc[df['column_name'] != some_value]
df = df.loc[~df['column_name'].isin(some_values)] # In-place replacement requires `loc`

Index Optimierung

Für eine effiziente Filterung nach häufig verwendeten Kriterien kann es hilfreich sein, einen Index für die Spalte zu erstellen. Dies ermöglicht schnellere Suchvorgänge mit df.loc:

df = df.set_index(['B'])
df.loc['one']

Beispiele

Berücksichtigen Sie den folgenden DataFrame:

df = pd.DataFrame({'A': ['foo', 'bar', 'foo', 'bar', 'foo', 'bar', 'foo', 'foo'],
                   'B': ['one', 'one', 'two', 'three', 'two', 'two', 'one', 'three'],
                   'C': np.arange(8), 'D': np.arange(8) * 2})

Zum Auswählen von Zeilen, in denen Spalte „A“ gleich „ foo':

print(df.loc[df['A'] == 'foo'])

Um Zeilen auszuwählen, in denen sich Spalte 'B' in ['one'] befindet, 'drei']:

print(df.loc[df['B'].isin(['one','three'])])

Um Zeilen auszuwählen, in denen Spalte 'B' 'eins' oder 'zwei' ist:

df = df.set_index(['B'])
print(df.loc[df.index.isin(['one','two'])])

Das obige ist der detaillierte Inhalt vonWie wähle ich bestimmte Zeilen in einem Pandas-DataFrame basierend auf Spaltenwerten 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