Heim >Backend-Entwicklung >Python-Tutorial >Wie lösche ich Zeilen aus einem Pandas-DataFrame basierend auf einem bedingten Ausdruck?

Wie lösche ich Zeilen aus einem Pandas-DataFrame basierend auf einem bedingten Ausdruck?

DDD
DDDOriginal
2024-11-13 15:23:02652Durchsuche

How to Delete Rows from a Pandas DataFrame Based on a Conditional Expression?

Entfernen von Zeilen aus Pandas DataFrame basierend auf bedingtem Ausdruck

Ihr Ansatz zur Verwendung von df[(len(df['column name']) < 2)] zum Löschen von Zeilen, deren Zeichenfolgenlänge 2 überschreitet, ist falsch. Dies führt zu einem KeyError, da der Ausdruck zu einem booleschen DataFrame mit den Schlüsseln True und False und nicht zu Zeilenindizes ausgewertet wird.

Um Zeilen basierend auf einem bedingten Ausdruck zu löschen, können Sie die Drop-Methode verwenden. So funktioniert es:

drop() zum Löschen von Zeilen verwenden

df = df.drop(df[df['column name'].str.len() > 2].index)</p>
<p>In diesem Beispiel df['column name'].str.len() > 2 erstellt einen booleschen DataFrame, der Zeilen mit Zeichenfolgenlängen größer als 2 angibt. Das Indexattribut dieses DataFrame ruft die Indizes dieser Zeilen ab, die dann an drop() übergeben werden.</p>
<p><strong>Alternative Syntax</strong> </p>
<pre class="brush:php;toolbar:false">df = df.drop(df[(df['column name'].str.len() > 2)].index)

Diese Syntax sorgt für eine klarere Trennung zwischen dem booleschen DataFrame und der Indexextraktion.

Mehrere Bedingungen

Mit der booleschen Indizierung können Sie Bedingungen kombinieren mit logischen Operatoren. Um beispielsweise Zeilen zu entfernen, in denen die Zeichenfolgenlänge 2 überschreitet und die Punktzahl weniger als 50 beträgt:

df = df.drop(df[(df['column name'].str.len() > 2) & (df['score'] < 50)].index)

Das obige ist der detaillierte Inhalt vonWie lösche ich Zeilen aus einem Pandas-DataFrame basierend auf einem bedingten Ausdruck?. 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