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

#python-3.x #pandas #dataframe

#python-3.x #pandas #фрейм данных

Вопрос:

У меня есть фрейм данных

 df = pd.DataFrame(np.random.randint(0,10,size=(5, 1)), columns=list('A'))
df.insert(0, 'n', ['this-text in presence 20-30%, and another string','id XDTV/HGF, publication',
                   'this-text, 37$degree','this-text K0.5, coefficient 0.007',' '])

>>> df
    n                                                 A
0   this-text in presence 20-30%, and another string  2
1   id XDTV/HGF, publication                          1
2   this-text, 37$degree                              4
3   coefficient 0.007,this-text K0.5                  1
4                                                     2
 

Я хотел бы создать новый столбец

 >>> df
    new       A
0   this-text 2
1             1
2   this-text 4
3   this-text 1
4             2
 

Я мог бы сохранить столбец n в списке и проверить, содержит ли каждый элемент списка подстроку this-text . Но я хотел бы знать, есть ли лучшие способы сделать это.
Предложения будут действительно полезны.

Ответ №1:

Попробуйте с str.findall помощью или extract

 df['new']=df.n.str.findall('this-text').str[0] 
#df.n.str.extract('(this-text)')[0]

df
Out[373]: 
                                                  n  A        new
0  this-text in presence 20-30%, and another string  7  this-text
1                          id XDTV/HGF, publication  4        NaN
2                              this-text, 37$degree  6  this-text
3                 this-text K0.5, coefficient 0.007  0  this-text
4                                                    7        NaN
 

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

1. Большое вам спасибо. На моих реальных данных я получаю сообщение об ошибке None type object not subscriptable , я проверю данные столбца и отправлю вас сюда для дальнейших предложений.