Pandas: как фильтровать строки, содержащие определенную строку


Вы можете использовать следующий синтаксис для фильтрации строк, содержащих определенную строку в кадре данных pandas:

df[df[" col "]. str.contains (" this string ")]

В этом руководстве объясняется несколько примеров использования этого синтаксиса на практике со следующим кадром данных:

import pandas as pd

#create DataFrame
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

Пример 1. Фильтрация строк, содержащих определенную строку

В следующем коде показано, как отфильтровать строки в DataFrame, которые содержат «A» в столбце команды:

df[df[" team "]. str.contains (" A ")]

 team conference points
0 A East 11
1 A East 8
2 A East 10

Сохраняются только строки, в которых столбец команды содержит «A».

Пример 2. Фильтрация строк, содержащих строку в списке

В следующем коде показано, как отфильтровать строки в DataFrame, которые содержат «A» или «B» в столбце команды:

df[df[" team "]. str.contains (" A|B ")]

 team conference points
0 A East 11
1 A East 8
2 A East 10
3 B West 6
4 B West 6

Сохраняются только строки, в которых столбец команды содержит «A» или «B».

Пример 3. Фильтрация строк, содержащих неполную строку

В предыдущих примерах мы фильтровали на основе строк, которые точно соответствовали одной или нескольким строкам.

Однако, если мы хотим отфильтровать строки, содержащие неполную строку, мы можем использовать следующий синтаксис:

#identify partial string to look for
keep= [" Wes "]

#filter for rows that contain the partial string "Wes" in the conference column
df[df.conference.str.contains('| '.join(keep))]

 team conference points
3 B West 6
4 B West 6

Сохраняются только строки, в которых столбец конференции содержит «Wes».

Дополнительные ресурсы

В следующих руководствах объясняется, как выполнять другие распространенные операции в pandas:

Как удалить строки в Pandas DataFrame на основе условия
Как фильтровать кадр данных Pandas по нескольким условиям
Как использовать фильтр «НЕ В» в Pandas DataFrame