2014-06-09 3 views
0

Я знаю, как использовать методы Pandas.Series.str.contains() для проверки наличия подстроки в другой подстроке.Pandas: Как проверить, содержат ли первые «n» элементы строки подстроку?

Однако, мне интересно, как мы можем проверить, содержат ли первые «n» элементы Pandas Series.str, содержащую подстроку?

Вот пример некоторых гликан я работаю с:

Neu5Aca2-6Galb1-4GlcNAcb1-3Galb1-4GlcNAcb1-6(Galb1-3)GalNAca-Sp14 
Neu5Aca2-6(Neu5Aca2-3Galb1-3)GalNAca-Sp14 
Neu5Aca2-3Galb1-4GlcNAcb1-2Mana1-6(Neu5Aca2-6Galb1-4GlcNAcb1-2Mana1-3)Manb1-4GlcNAcb1-4GlcNAcb-Sp12 
GalNAca1-3(Fuca1-2)Galb1-3GalNAca1-3(Fuca1-2)Galb1-4GlcNAcb-Sp0 

я в настоящее время делаю str.contains(), чтобы проверить, происходит ли a(2-3) или a(2-6) в имени, но третий пример один, где a2-6 происходит как в начало и посередине.

Моя цель - выделить подстроку a2-3 с первых n букв в каждой строке. Это возможно?

ответ

1

Вы можете быть в состоянии построить регулярное выражение, которое соответствует вашим данным более чисто, но вы можете выполнить поиск подстроки в п первых символов строки с помощью str.slice() метода

In [128]: glycans 
Out[128]: 
0 Neu5Aca2-6Galb1-4GlcNAcb1-3Galb1-4GlcNAcb1-6(G... 
1   Neu5Aca2-6(Neu5Aca2-3Galb1-3)GalNAca-Sp14 
2 Neu5Aca2-3Galb1-4GlcNAcb1-2Mana1-6(Neu5Aca2-6G... 
3 GalNAca1-3(Fuca1-2)Galb1-3GalNAca1-3(Fuca1-2)G... 
dtype: object 

In [134]: glycans.str.slice(0,10).str.contains('a2-3') 
Out[134]: 
0 False 
1 False 
2  True 
3 False 
dtype: bool 
+0

Вы также можете использовать стандартную строку например, '.str [: 10]', но это то же самое. – DSM

Смежные вопросы