Heim >Backend-Entwicklung >Python-Tutorial >Wie lösche ich Zeilen aus einem Pandas-DataFrame basierend auf einem bedingten Ausdruck?
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!