07 Июл 2023
1 мин
2269

Фильтрация DataFrame в pandas по критерию подстроки

Часто при работе с DataFrame в pandas возникает задача выбрать строки, которые содержат определенную подстроку в одном из столбцов. Например, в таблице с данными

Содержание

Часто при работе с DataFrame в pandas возникает задача выбрать строки, которые содержат определенную подстроку в одном из столбцов. Например, в таблице с данными о товарах интернет-магазина в столбце «Название товара» нужно найти все строки, в которых название товара содержит слово «ноутбук».

import pandas as pd

data = {'Название товара': ['ноутбук Lenovo', 'мышь Logitech', 'ноутбук ASUS', 'клавиатура', 'ноутбук HP'],
        'Цена': [50000, 1000, 45000, 1500, 60000]}
df = pd.DataFrame(data)

print(df)

Вывод:

  Название товара   Цена
0   ноутбук Lenovo  50000
1   мышь Logitech   1000
2   ноутбук ASUS    45000
3   клавиатура      1500
4   ноутбук HP      60000

Для этого в pandas существует метод str.contains(). Он используется для проверки, содержит ли каждая строка в столбце определенную подстроку.

filtered_df = df[df['Название товара'].str.contains('ноутбук')]

print(filtered_df)

Вывод:

  Название товара   Цена
0   ноутбук Lenovo  50000
2   ноутбук ASUS    45000
4   ноутбук HP      60000

Таким образом, в отфильтрованном DataFrame остались только те строки, в которых в столбце «Название товара» есть подстрока «ноутбук».

Метод str.contains() очень удобен и легок в использовании, что делает его мощным инструментом при работе с текстовыми данными в pandas.

Содержание

Добавить комментарий

Определи профессию по рисунку