Pandas: як вибрати рядки, які не починаються з рядка


Ви можете використовувати наступний базовий синтаксис, щоб вибрати рядки, які не починаються з певного рядка в pandas DataFrame:

 df[~df. my_column . str . startswith ((' this ', ' that '))]

Ця конкретна формула вибирає всі рядки у DataFrame, де стовпець під назвою my_column не починається з рядка this або рядка that .

У наступному прикладі показано, як використовувати цей синтаксис на практиці.

Приклад: виберіть рядки, які не починаються з рядка в Pandas

Скажімо, у нас є наступний DataFrame pandas, який містить інформацію про продажі для різних магазинів:

 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     

Ми можемо використовувати наступний синтаксис, щоб вибрати всі рядки в DataFrame, які не починаються з рядків «Upper» або «Lower» у стовпці магазину :

 #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

Зауважте, що повертаються лише ті рядки, у яких стовпець магазину не починається з «Верхній» або «Нижній».

Якщо ви хочете, ви також можете визначити рядковий кортеж поза функцією 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

Це дає той самий результат, що й попередній метод.

Примітка : повну документацію щодо функції startwith у pandas можна знайти тут .

Додаткові ресурси

У наступних посібниках пояснюється, як виконувати інші типові завдання в pandas:

Pandas: як фільтрувати рядки на основі довжини рядка
Pandas: як перевірити, чи містить стовпець рядок
Pandas: як об’єднати рядки за допомогою GroupBy

Додати коментар

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *