Для фильтрации столбца фрейма данных только с пробелами

#python #pandas #dataframe

#питон #панды #фрейм данных

Вопрос:

Чтобы отфильтровать столбец фрейма данных только с пробелами, пример:

входной фрейм данных:

 |col_name |  col_desc |                                         |
|---------|-----------|-----------------------------------------| 
|A        |           |     has a single space character i.e. ' '|
|B        |           |     has 2 consecutive space character i.e. '  '|
|C        |    text   |     starts with space followed by 'text' i.e ' text'|
|D        |           |     has multiple spaces|
 

выходной сигнал:

 |col_name |  col_desc |                                         |
|---------|-----------|-----------------------------------------| 
|A        |           |     has a single space character i.e. ' '|
|B        |           |     has 2 consecutive space character i.e. '  '|
|D        |           |     has multiple spaces|
 

Ответ №1:

Одним из способов было бы заменить все пробелы ничем. Если ничего не осталось, то это то, что вы хотите:

 df[df['col_desc'].str.replace(' ', '') == '']
 

Вы также можете использовать s или s для достижения этой цели. Использование s может быть наиболее эффективным, поскольку менее полная замена с момента захвата последовательного пространства и замены всего сразу:

 df[df['col_desc'].str.replace('s ', '') == '']
 

Комментарии:

1. Спасибо, Дэвид, мое требование — ничего не заменять, а отфильтровывать данные как есть с помощью null, empty или пробелов. Null и empty было легко, но нужно решение для пространства

2. @RanjanaJha, вы ничего не заменяете, вы фильтруете по новой серии с заменой значений . Имеет ли это смысл? Что касается null или Empty, это не было частью вашего вопроса.

Ответ №2:

Вы можете использовать метод string isspace :

 df[df.col_desc.str.isspace()]
 

Обратите внимание, что он не будет хранить пустые строки. Из документов:

str.isspace()
Возвращает True, если в строке есть только пробельные символы и есть хотя бы один символ, в противном случае False .