использование регулярного выражения поиск шаблона в предложении на python

#python-3.x #pandas #string #dataframe #substring

Вопрос:

привет, у меня есть образец фрейма данных, как показано ниже

     col
0   [This is a sample, I have a string]
1   [sample question, strings are immutable]
2   [cool weather, It is hot]
 

используя регулярное выражение , я хочу выяснить, присутствует ли «образец» или «строка» в предложении, если присутствует, возвращает весь текст в новом столбце, если не возвращает ничего в новый столбец.

     col                                       Text
0   [This is a sample, I have a string]       [This is a sample, I have a string]
1   [sample question, strings are immutable]  [sample question, strings are immutable]
2   [cool weather, It is hot]                 None
 

Не могли бы вы помочь мне найти правильное решение для этого?

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

1. Привет! Ваш вопрос решен? если это так, то попробуйте рассмотреть возможность принятия , чтобы сообщить другим, что проблема решена. Если нет, вы можете предоставить обратную связь, чтобы ответ можно было улучшить (или вообще удалить).

Ответ №1:

Попробуйте через contains() :

 m=df['col'].str.contains('sample|string')
df.loc[m,'Text']=df.loc[m,'col']
 

или

Если значения внутри столбцов ‘col’ имеют тип list, то вы можете использовать:

 m=df['col'].map(lambda x:any(y for y in x for z in ['sample','string'] if z in y))
df.loc[m,'Text']=df.loc[m,'col']
#OR
m=df['col'].astype(str).str.contains('sample|string')
df.loc[m,'Text']=df.loc[m,'col']
 

выход из df :

     col                                         Text
0   [This is a sample, I have a string]         [This is a sample, I have a string]
1   [sample question, strings are immutable]    [sample question, strings are immutable]
2   [cool weather, It is hot]                   NaN
 

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

1. Спасибо за усилия..любые другие способы без использования «содержит» или «любой» @Anurag Dabas

2. @Cherry Я не думаю, что есть другой способ

3. @Cherry эти 2 простых метода