Удалите строки из фрейма данных pandas, предложения которого длиннее определенной длины слова - PullRequest
6 голосов
/ 12 июня 2019

Я хочу удалить строки из фрейма данных pandas, который содержит строки из определенного столбца, длина которого больше требуемой длины.

Например:

Входной кадр:

X    Y
0    Hi how are you.
1    An apple
2    glass of water
3    I like to watch movie

Теперь, скажем, я хочу удалить строки, у которых есть строка слов с длиной, большей или равной 4, из кадра данных.

Требуемый выходной кадр должен быть:

X    Y
1    An apple
2    glass of water

Строка со значением 0,3 в столбце «X» удаляется, поскольку количество слов в столбце 0 равно 4, а в столбце 3 соответственно 5.

Ответы [ 2 ]

6 голосов
/ 12 июня 2019

Первое разделение значений по пробелам, получение числа строк по Series.str.len и проверка по инвертированному условию >= до < с Series.lt для boolean indexing:

df = df[df['Y'].str.split().str.len().lt(4)]
#alternative with inverted mask by ~
#df = df[~df['Y'].str.split().str.len().ge(4)]
print (df)
   X               Y
1  1        An apple
2  2  glass of water
2 голосов
/ 12 июня 2019

Вы можете сосчитать пробелы:

df[df.Y.str.count('\s+').lt(3)]

   X               Y
1  1        An apple
2  2  glass of water
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...