поиск в фрейме с разбивкой текста - PullRequest
0 голосов
/ 14 марта 2019

У меня есть фрейм данных, который состоит из двух столбцов, id и текста.

В качестве примера я хочу получить строки, длина текста которых больше 2.

Длина текстаэто количество слов в тексте, а не количество символов.

Я сделал следующее:

df = pd.DataFrame([{'id': 1, 'text': 'Connected to hgfxg debugger'},
                   {'id': 2, 'text': 'fdss debugger - process 6384 is connecting'},
                   {'id': 3, 'text': 'we are'},
                   ])
df = df[df['text'].str.len() > 2]
print(df) #<-- it will print all the sentences above

Но при этом получаем предложения, которые имеют более 2 символов (в нашем случае, все предложения выше).

Как мне достичь того, что я хочу, в одной строке кода?возможно?

Я могу сделать это более чем с одним, например:

df['text_len'] = df['text'].map(lambda x: len(str(x).split()))
df = df[df['text_len'] > 2]
print(df) #<-- will print the first two sentences

Ответы [ 2 ]

2 голосов
/ 14 марта 2019

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

df[df.text.str.split('\s+').str.len().gt(2)]
2 голосов
/ 14 марта 2019

Просто подумайте о другом, вам нужно более 2 предложений, так что вам нужно два ' ' в строке, и здесь мы просто считаем, что ' ' больше 2

df[df['text'].str.count(' ')>2]
Out[230]: 
   id                                        text
0   1                 Connected to hgfxg debugger
1   2  fdss debugger - process 6384 is connecting
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...