Pandas: как фильтровать строки на основе длины строки


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

Метод 1: фильтрация строк на основе длины строки в одном столбце

#filter rows where col1 has a string length of 5
df.loc[df['col1']. str.len () == 5 ]

Способ 2: фильтрация строк на основе длины строки нескольких столбцов

#filter rows where col1 has string length of 5 and col2 has string length of 7
df.loc[(df['col1']. str.len () == 5 ) &(df['col2']. str.len () == 7 )]

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

import pandas as pd

#create DataFrame
df = pd.DataFrame({'conf': ['East', 'East', 'North', 'West', 'North', 'South'],
 'pos': ['Guard', 'Guard', 'Forward', 'Center', 'Center', 'Forward'],
 'points': [5, 7, 7, 9, 12, 9]})

#view DataFrame
print(df)

 conf pos points
0 East Guard 5
1 East Guard 7
2 North Forward 7
3 West Center 9
4 North Center 12
5 South Forward 9

Пример 1. Фильтрация строк по длине строки в одном столбце

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

#filter rows where conf has a string length of 5
df.loc[df['conf']. str.len () == 5 ]

 conf pos points
2 North Forward 7
4 North Center 12
5 South Forward 9

Возвращаются только строки, в которых столбец conf имеет длину строки 5 .

Мы видим, что две разные строки соответствуют этому критерию в столбце conf :

  • "Север"
  • "Юг"

Обе строки имеют длину 5 .

Пример 2: фильтрация строк на основе длины строки нескольких столбцов

Следующий код показывает, как отфильтровать строки в DataFrame, которые имеют длину строки 5 в столбце conf и длину строки 7 в столбце pos :

#filter rows where conf has string length of 5 and pos has string length of 7
df.loc[(df['conf']. str.len () == 5 ) &(df['pos']. str.len () == 7 )]

 conf pos points
2 North Forward 7
5 South Forward 9

Возвращаются только строки, в которых столбец conf имеет длину строки 5 , а столбец pos имеет длину строки 7 .

Примечание.Полную документацию по функции str.len() в pandas можно найти здесь .

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

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

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

Замечательно! Вы успешно подписались.
Добро пожаловать обратно! Вы успешно вошли
Вы успешно подписались на кодкамп.
Срок действия вашей ссылки истек.
Ура! Проверьте свою электронную почту на наличие волшебной ссылки для входа.
Успех! Ваша платежная информация обновлена.
Ваша платежная информация не была обновлена.