Pandas: so filtern sie zeilen basierend auf der zeichenfolgenlänge


Mit den folgenden Methoden können Sie Zeilen filtern, die eine Zeichenfolge einer bestimmten Länge in einem Pandas-DataFrame enthalten:

Methode 1: Zeilen basierend auf der Zeichenfolgenlänge in einer Spalte filtern

 #filter rows where col1 has a string length of 5
df. loc [df[' col1 ']. str . len () == 5 ]

Methode 2: Zeilen basierend auf der Zeichenfolgenlänge mehrerer Spalten filtern

 #filter rows where col1 has string length of 5 and col2 has string length of 7
df. loc [(df[' col1 ']. str . len () == 5 ) & (df[' col2 ']. str . len () == 7 )]

Die folgenden Beispiele zeigen, wie jede Methode in der Praxis mit dem folgenden Pandas DataFrame verwendet wird:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' conf ': ['East', 'East', 'North', 'West', 'North', 'South'],
                   ' pos ': ['Guard', 'Guard', 'Forward', 'Center', 'Center', 'Forward'],
                   ' points ': [5, 7, 7, 9, 12, 9]})

#view DataFrame
print (df)

    conf pos points
0 East Guard 5
1 East Guard 7
2 North Forward 7
3 West Center 9
4 North Center 12
5 South Forward 9

Beispiel 1: Zeilen basierend auf der Zeichenfolgenlänge in einer Spalte filtern

Der folgende Code zeigt, wie Zeilen aus dem DataFrame gefiltert werden, die in der Spalte „conf“ eine Zeichenfolgenlänge von 5 haben:

 #filter rows where conf has a string length of 5
df. loc [df[' conf ']. str . len () == 5 ]

	conf pos points
2 North Forward 7
4 North Center 12
5 South Forward 9

Es werden nur Zeilen zurückgegeben, in denen die Spalte „conf“ eine Zeichenfolgenlänge von 5 hat.

Wir können sehen, dass zwei verschiedene Zeichenfolgen dieses Kriterium in der Spalte „conf“ erfüllen:

  • „Norden“
  • „Süd“

Beide Saiten haben eine Länge von 5 .

Beispiel 2: Zeilen basierend auf der Zeichenfolgenlänge mehrerer Spalten filtern

Der folgende Code zeigt, wie Zeilen aus dem DataFrame gefiltert werden, die eine Zeichenfolgenlänge von 5 in der Spalte „conf “ und eine Zeichenfolgenlänge von 7 in der Spalte „pos“ haben:

 #filter rows where conf has string length of 5 and pos has string length of 7
df. loc [(df[' conf ']. str . len () == 5 ) & (df[' pos ']. str . len () == 7 )]

        conf pos points
2 North Forward 7
5 South Forward 9

Es werden nur Zeilen zurückgegeben, in denen die Spalte „conf“ eine Zeichenfolgenlänge von 5 und die Spalte „ pos “ eine Kraftlänge von 7 hat.

Hinweis : Die vollständige Dokumentation der Funktion str.len() in Pandas finden Sie hier .

Zusätzliche Ressourcen

In den folgenden Tutorials wird erläutert, wie andere gängige Vorgänge in Pandas ausgeführt werden:

So löschen Sie Zeilen in Pandas DataFrame basierend auf der Bedingung
So filtern Sie einen Pandas DataFrame nach mehreren Bedingungen
So verwenden Sie den „NOT IN“-Filter in Pandas DataFrame

Einen Kommentar hinzufügen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert