2014-06-09 100 views
0

我知道如何使用Pandas.Series.str.contains()方法來檢查一個子字符串是否存在於另一個子字符串中。熊貓:如何檢查字符串的第一個「n」元素是否包含子字符串?

但是,我想知道,我們如何檢查一個Pandas Series.str的第一個「n」元素是否包含子字符串?

下面是一些聚糖我一起工作的例子:

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都在發生開始和中間。

我的目標是從每個字符串中的第一個n字母中分離子串a2-3。這可能嗎?

回答

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

您也可以使用標準的字符串中字符串的前n個字符搜索字符串像'.str [:10]'這樣的切片符號,但它相當於同樣的東西。 – DSM

相關問題