Pandy: jak wybrać linie, które nie zaczynają się od ciągu znaków
Możesz użyć następującej podstawowej składni, aby wybrać wiersze, które nie zaczynają się od określonego ciągu w ramce DataFrame pandy:
df[~df. my_column . str . startswith ((' this ', ' that '))]
Ta konkretna formuła wybiera wszystkie wiersze w ramce danych, w których kolumna o nazwie moja_kolumna nie zaczyna się od ciągu tego lub tamtego .
Poniższy przykład pokazuje, jak zastosować tę składnię w praktyce.
Przykład: wybierz linie, które nie zaczynają się od ciągu znaków w Pandach
Załóżmy, że mamy następującą ramkę DataFrame pand, która zawiera informacje o sprzedaży dla różnych sklepów:
import pandas as pd #createDataFrame df = pd. DataFrame ({' store ': ['Upper East', 'Upper West', 'Lower East', 'West', 'CTR'], ' sales ': [150, 224, 250, 198, 177]}) #view DataFrame print (df) blind sales 0 Upper East 150 1 Upper West 224 2 Lower East 250 3 West 198 4 CTR 177
Możemy użyć następującej składni, aby wybrać wszystkie wiersze w ramce DataFrame, które nie zaczynają się od ciągów „Upper” lub „Lower” w kolumnie sklepu :
#select all rows where store does not start with 'Upper' or 'Lower'
df[~df. blind . str . startswith ((' Upper ',' Lower '))]
blind sales
3 West 198
4 CTR 177
Należy pamiętać, że zwracane są tylko te wiersze, w których kolumna sklepu nie zaczyna się od „Górna” lub „Dolna”.
Jeśli chcesz, możesz także zdefiniować krotkę łańcuchową poza funkcją startupswith() :
#define tuple of strings
some_strings = (' Upper ', ' Lower ')
#select all rows where store does not start with strings in tuple
df[~df. blind . str . startswith (some_strings)]
blind sales
3 West 198
4 CTR 177
Daje to taki sam wynik jak poprzednia metoda.
Uwaga : Pełną dokumentację funkcji startwith w pandach znajdziesz tutaj .
Dodatkowe zasoby
Poniższe samouczki wyjaśniają, jak wykonywać inne typowe zadania w pandach:
Pandy: Jak filtrować wiersze na podstawie długości łańcucha
Pandy: jak sprawdzić, czy kolumna zawiera ciąg znaków
Pandy: Jak łączyć ciągi znaków za pomocą GroupBy