Pandy: jak usunąć linie zawierające określony ciąg
Możesz użyć następującej składni, aby usunąć wiersze zawierające określony ciąg w ramce DataFrame pandy:
df[df[" col "]. str . contains (" this string ") == False ]
W tym samouczku wyjaśniono kilka przykładów praktycznego użycia tej składni w następującej ramce DataFrame:
import pandas as pd #createDataFrame df = pd. DataFrame ({' team ': ['A', 'A', 'A', 'B', 'B', 'C'], ' conference ': ['East', 'East', 'East', 'West', 'West', 'East'], ' points ': [11, 8, 10, 6, 6, 5]}) #view DataFrame df team conference points 0 A East 11 1 A East 8 2 A East 10 3 B West 6 4 B West 6 5 C East 5
Przykład 1: Usuń wiersze zawierające określony ciąg
Poniższy kod pokazuje, jak usunąć wszystkie wiersze z ramki DataFrame zawierające literę „A” w kolumnie zespołu:
df[df[" team "]. str . contains (" A ")== False ] team conference points 3 B West 6 4 B West 6 5 C East 5
Przykład 2: Usuń wiersze zawierające ciąg na liście
Poniższy kod pokazuje, jak usunąć wszystkie wiersze z ramki DataFrame zawierające „A” lub „B” w kolumnie zespołu:
df[df[" team "]. str . contains (" A|B ")== False ] team conference points 5 C East 5
Przykład 3: Usuń wiersze zawierające częściowy ciąg
W poprzednich przykładach usunęliśmy wiersze na podstawie wierszy, które dokładnie pasowały do jednego lub większej liczby ciągów.
Jeśli jednak chcemy usunąć linie zawierające częściowy ciąg znaków, możemy zastosować następującą składnię:
#identify partial string to look for discard = [" Wes "] #drop rows that contain the partial string "Wes" in the conference column df[~df. conference . str . contains (' | ' .join (discard))] team conference points 0 A East 11 1 A East 8 2 A East 10 5 C East 5
Więcej tutoriali o pandach znajdziesz na tej stronie .